// 【C Prime Plus】学习笔记,Chapter 10, P631
#include <stdio.h>
int main(void)
{ int i;
char arr[4];
printf("局部变量没有初始化,看看打印出来是什么\n");
for(i=0;i<4;i++)
printf("%d\n",arr[i]);
printf("局部变量仅仅初始化部分元素,看看打印出来是什么\n");
char t[4]={1,2};
for(i=0;i<4;i++)
printf("%d\n",t[i]);
printf("static局部变量没有初始化,看看打印出来是什么\n");
static char x[4];
for(i=0;i<4;i++)
printf("%d\n",x[i]);
printf("static局部变量仅仅初始化部分元素,看看打印出来是什么\n");
static char y[4]={1,2};
for(i=0;i<4;i++)
printf("%d\n",y[i]);
//---
return 0;
}
输出结果:
局部变量没有初始化,看看打印出来是什么
-52
-52
-52
-52
局部变量仅仅初始化部分元素,看看打印出来是什么
1
2
0
0
static局部变量没有初始化,看看打印出来是什么
0
0
0
0
static局部变量仅仅初始化部分元素,看看打印出来是什么
1
2
0
0
小结:
1)局部数组 如果没有初始化,其值是不确定的
2)局部数据,如果仅仅初始化一部分元素,余下的元素则是0
3)static 局部数组,没有被初始化的元素,默认是0