这是我的第一个问题……很高兴认识你!
有人可以解释为什么这段代码是用 C 编写的
#include <stdio.h>
int main(){
int choice;
printf("\nSize of 'choice' %d\n", sizeof(choice));
printf("Size of 'int' %d\n", sizeof(int));
printf("Value of 'choice %d\n", choice);
return 0;
}
在 Windows 上使用
gcc -o C:\test.exe test.c
编译(gcc 版本 2015/06/27)返回这些值Size of 'choice' 4
Size of 'int' 4
Value of 'choice 2
而在 Linux 上一切正常,返回这些值
Size of 'choice' 4
Size of 'int' 4
Value of 'choice 0
我错过了什么?
非常感谢。
最佳答案
未初始化的局部非静态变量就是这样,未初始化。它们将具有不确定的值(value)。在没有初始化的情况下使用它们会导致未定义的行为。
关于c - 为什么 Windows 上的 gcc 将特定值分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40108303/