turbo中的默认值c

时间:2017-06-17 08:49:49

标签: c turbo-c

我输出为-28762。为什么它不是0(零),应该是整数的默认值?

#include<stdio.h>
#include<conio.h>

void main(){
   int a;
   clrscr();
   printf("%d",a);
   getch();
}

1 个答案:

答案 0 :(得分:-2)

虽然您没有初始化变量,但变量确实引用了内存中的位置。

转换为整数时此位置的值会产生一些东西,在您的情况下它是-28762

请注意,当您声明任何简单数据类型(如int,float等)时,会发生这种情况。

对于像用户定义的类型和结构这样的复杂类型,这不会发生。

整数变量不默认为零,除非它们是文件范围或静态。 请参阅参考链接https://msdn.microsoft.com/en-us/library/y2xtdbay.aspx

  

如果z的声明是针对未初始化的静态变量或者是在文件范围内,则它将接收初始值0,并且该值将是不可修改的。