c - Turbo c 中的默认值

标签 c turbo-c

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

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

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

最佳答案

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

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

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

对于用户定义类型和结构等复杂类型,这种情况不会发生。

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

If the declaration of z was for an uninitialized static variable or was at file scope, it would receive an initial value of 0, and that value would be unmodifiable.

关于c - Turbo c 中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44602574/

相关文章:

c - 在输出屏幕中打开图像文件

c - 在 C 中将数组的头指针分配给 union 中的现有数组

c - Turbo C strcpy 库函数

c - TurboC - "compact"内存模型中的 malloc()

c - 我在代码中犯了哪些错误。它没有给出任何输出?

c - 在 while 循环中使用 kbhit()

c - 在 Windows 7 64 位中使用 DosBox 在 Turbo C 中重复运行同一程序时出错

c - gcc 在调用 `mbtowc()` 时如何决定宽字符集?

c - 段。哈希表 ADT 中的错误 - C

c++ - 使用 vi[m] 自动为#define 生成值