验证目标:
- 未初始化的全局变量的初值为 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
未初始化的局部变量的默认值是一个随机值。因为局部变量保存在栈上,栈内存是反复使用的,可能局部变量指向的是上次用过的。所以没有被初始化的局部变量的值是脏的