void关键字的使用规则:
a.如果函数没有返回值,那么应(一定要)声明为void类型;
b.如果函数无参数,那么应声明其参数为void;
c.如果函数的参数可以是任意类型指针,那么应声明其参数为void*;
d.如果函数可以返回任意类型指针,那么应声明void*fun();
e.void不能代表一个真正的变量。
注:仅用于个人编程学习记录,如有错误,请各位指出共勉!
大部分内容来源于:void和void*区别详解
1.概念:
void的字面意思是“无类型”;void*则为“无类型指针”,且可以指向任何类型的数据。
void一般作用于:
(1). 对函数的返回的限定;
(2). 对函数参数的限定。
void*作用:无需强制类型转换地赋给其他类型的指针。
举例:
float *p1;
int*p2;
p1=p2; // 此时编程出错,提示“'=' : cannot convert from 'int *' to 'float *'”
而void*则不同可以直接赋值给它,无需进行强制类型转换;
void *p1;
int*p2;
p1=p2; //p1=p2可以,但p2=p1不行,因为p1为void*“无类型指针”不能赋值给“有类型指针”
即void*不能直接赋给其他类型的指针,“无类型”可以包容“有类型”,反之则不包容;