简单认识一下void
今天跟大家介绍的知识是C语言中的void关键字的用法,void在大部分小伙伴的程序中都只是用于函数无参数传入,或者无类型返回。然而我们平时所定义的变量都会有具体的类型,int,float,char等等,那是否有void类型的变量呢?答案是:不行,编译会出错。如下测试代码:
上图很明显编译器不允许定义void类型的变量,变量都是需要占用一定内存的,既然void表示无类型,编译器自然也就不知道该为其分配多大的内存,于是造成编译失败。虽然void不能直接修饰变量,但是其可以用于修饰指针的指向即无类型指针void*,无类型指针那就有意义了,无类型指针不是一定要指向无类型数据,而是可以指向任意类型的数据。
void * 基本操作
大家其实在使用动态内存分配的使用就已经遇到了void *的使用,来我们一起看看如下几个标准函数的原型定义:
上面这些函数都是与内存操作有关的函数,而void* 类型指针使用原则是: 必须要做强制类型转换成为目标类型后才可以使用,如下测试代码:
使用void * 实现无类型数据封装
void既然如此的灵活一定大有用处,如果