“C程序函数中定义的自动变量,系统不自动赋确定的初值”这句话为什么是错的?

我用VC试过,在主函数里只定义变量不赋值直接输出,可以得到0,说明系统自动赋了0啊?

你自己都说了可以得到0, 那不就是说*系统不自动赋确定的初值*这是错的啦.

系统是不会为它赋初值, 是编译器赋的初值, 这点你要搞清楚. 只有少数库函数在申请空间的时候系统会为你赋初值.

以VC6来说, 它为了让程序员在测试的时候好发现错误, 第一它是在编译的时候就会对没有赋初值就引用的变量进行警告, 再一就是它会把这些变量的初值赋值为绝对值非常大的负数.
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-07
编译器有关系。有些编译器会赋初值,有些就不会。但是作为C语言的基本知识来讲,我们一般认为如果程序员编程的时候不给自动变量赋初值,这个变量就有可能是一个不确定的值,要有这个概念。本回答被网友采纳
相似回答