以下代码的输出是4
。
不应该是 0
吗?
由于 a 已声明但未定义,因此未为其分配内存。
#include <stdio.h>
#include <stdlib.h>
int main()
{
extern int a;
printf("%ld",sizeof(a));
return 0;
}
最佳答案
我们知道 a
的大小是多少,即使它没有在这个模块中定义。 sizeof
不会告诉您已为该模块中的对象分配了多少内存。它告诉您对象需要多少内存。
关于c - 为什么将 sizeof 运算符应用于外部变量不输出 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560280/