简单认识一下void今天跟大家介绍的知识是C语言中的void关键字的用法,void在大部分小伙伴的程序中都只是用于函数无参数传入,或者无类型返回 。然而我们平时所定义的变量都会有具体的类型,int,float,char等等,那是否有void类型的变量呢?答案是:不行,编译会出错 。如下测试代码:

文章插图
上图很明显编译器不允许定义void类型的变量,变量都是需要占用一定内存的,既然void表示无类型,编译器自然也就不知道该为其分配多大的内存,于是造成编译失败 。虽然void不能直接修饰变量,但是其可以用于修饰指针的指向即无类型指针void*,无类型指针那就有意义了,无类型指针不是一定要指向无类型数据,而是可以指向任意类型的数据 。
void * 基本操作大家其实在使用动态内存分配的使用就已经遇到了void *的使用,来我们一起看看如下几个标准函数的原型定义:
void* memcpy( void* _Dst, void const* _Src,size_t_Size);intmemcmp(void const* _Buf1,void const* _Buf2, size_t_Size);void* memset(void*_Dst,int_Val,size_t _Size );void*malloc(size_t _Size);void*realloc( void*_Block,size_t _Size );void*calloc(size_t _Count,size_t _Size);voidfree( void* _Block );上面这些函数都是与内存操作有关的函数,而void* 类型指针使用原则是: 必须要做强制类型转换成为目标类型后才可以使用,如下测试代码:#include <stdio.h>#include <string.h>#include <malloc.h>int main(){int num = 0;void* pVoid = #printf("%d", *(int*)pVoid);//解引用前 必须强制类型转换int* p = (int*)malloc(4);//赋值给目标指针 做类型转换return 0;}使用void * 实现无类型数据封装void
- 法语入门先学什么 法语基础入门教程
- 3D桌球游戏最新版下载 3D桌球游戏下载
- 瑜伽入门教程 瑜伽训练班
- 初学电脑入门教程 水墨画教程视频简单 初学
- 象棋的摆法图片大全 象棋入门教程从零开始口诀
- Python游戏编程入门 中文pdf免费 计算机游戏编程入门教程
- 实用泰语入门 泰语入门教程
- 苹果笔记本电脑使用教程图片 苹果笔记本电脑使用入门教程视频
- 初学英语入门视频 英语初级入门教程
- 新手学电脑基础知识初级入门教程全套,电脑键盘的使用 电脑基础入门操作键盘
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
