验证目标:
- 未初始化的全局变量的初值为 0
- 未初始化的局部变量的初值为随机值
测试用例:
#include <stdio.h>char gval1;
int gval2;
static long gval3;int main()
{unsigned char uchTmp1;unsigned int uTmp2;printf("%d\n", gval1);printf("%d\n", gval2);printf("%d\n", gval3);printf("%d\n", uchTmp1);printf("%d\n", uTmp2);return 0;
}
运行结果:
结果分析:
未初始化的全局变量的默认值是 0
未初始化的局部变量的默认值是一个随机值。因为局部变量保存在栈上,栈内存是反复使用的,可能局部变量指向的是上次用过的。所以没有被初始化的局部变量的值是脏的