基础c语言 基础c语言

要是一开始没给num和sum赋值,不是应该默认为0吗?为什么求和得到这样的数

img

img

1 局部变量。

局部变量在没有显示初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值(另一种说法:以前残留在堆栈里的随机值)比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化全为c,即0xCCCCCC;

2 全局变量或静态局部变量。

所有的全局变量,即定义在函数外的变量,默认值为0。

所有的静态局部变量,即定义在函数内部的(eg:static int a)形式的,默认值为0。