C语言未初始化的变量进行计算的问题

2020-10-27 科技 89阅读

对于局部变量没有初始化时,其值C语言规范并没有做规定,不过一般有两种做法,一种是不会去初始化,这时sum值是随机值,不一定是多少。

另一种就是编译器会做这样的初始化,比如gcc一般会默认初始化为0,而VC会默认初始化为0xcccccccc


也就是说,这个程序会跑出什么结果,取决于编译器。甚至有些编译器遇到这种情况,会直接报错,编译失败。


而你现在的结果,明显是编译器默认初始化为0的情况。

其实判断这个,不需要这么麻烦,直接

#include
int main (void)
{
  int sum;
  printf("%d",sum);
  return 0;
}

就可以知道编译器是怎么做的了。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com