C语言中 printf("%d尀n",sizeof(void)); 输出结果为1 为什么

我想问size(void)为什么等于1
2025-02-26 18:01:06
推荐回答(5个)
回答1:

我在vc中试过了,结果是0
sizeof是取字节运算符,void是空类型,sizeof(void)运算的结果是void类型的变量所占的内存单元(即字节数)数,我认为应该是0,你的输出结果是1,可能你的版本和我的不一样,使用的编译器不一样吧
你可以试试sizeof(int),int 类型的变量占4个内存单元(4个字节),所以结果为4
或sizeof(float)
float类型也占四个字节,所以输出结果也为4
希望对你有所帮助

回答2:

这取决于编译程序。
因为不能定义void类型的变量,所以它也就不占空间,理论上应该sizeof(void)是0,在VC中的确也是0,而gcc把它定为1。
如果是C++的话, sizeof(void)根本是编译通不过的。
随便说一下,C++中一个空的结构或类:
struct EMPTY{};
sizeof( struct EMPTY ); 也是返回1。
但如果是C语言,gcc中就会返回0。而VC中根本不允许空的结构。

回答3:

缓冲区类型有:全缓冲(大部分缓冲都是这类型)、行缓冲(例如stdio,stdout)、无缓冲(例如stderr)。
printf将内容输出到标准输出文件的缓冲区中(缓冲区在内存上),你有printf函数输出的内容,就可以显示出来,这些字符还不至于让缓存区满。

回答4:

你的运行结果是错的。。。结果是0
void类型不能定义变量。。。不占内存空间。。。

回答5:

这个应该是依赖于编译器或者 c语言标准。