我输出为-28762。为什么它不是0(零),应该是整数的默认值?
#include<stdio.h>
#include<conio.h>
void main(){
int a;
clrscr();
printf("%d",a);
getch();
}
答案 0 :(得分:-2)
虽然您没有初始化变量,但变量确实引用了内存中的位置。
转换为整数时此位置的值会产生一些东西,在您的情况下它是-28762
请注意,当您声明任何简单数据类型(如int,float等)时,会发生这种情况。
对于像用户定义的类型和结构这样的复杂类型,这不会发生。
整数变量不默认为零,除非它们是文件范围或静态。 请参阅参考链接https://msdn.microsoft.com/en-us/library/y2xtdbay.aspx
如果z的声明是针对未初始化的静态变量或者是在文件范围内,则它将接收初始值0,并且该值将是不可修改的。