C语言:数组没初始化也没赋值,编译系统是否能给没赋值的元素自动(数值型)赋0值或(字符型)赋'\0'值。

main()
{long x[101];int a;<br/>for(a=1;a<101;a++)<br/>{if(a==1)<br/>x[a]=1;<br/>else<br/>x[a]=x[a-1]+x[a-2];<br/>printf("第%d个月:",a);<br/>printf("%ld\n",&x[a]);<br/>}
}

不会。利用下面这个程序测试一下就知道了:
#include <stdio.h>
#define Times 40

void main()
{
long x[Times];
int a;

// 测试系统会不会自动为数组赋值
for(a=0;a<Times;a++)
{
printf("第%2d个月:%d\n", a+1, x[a]);

if ((a!=0) && (a%10 == 0))
printf("\n");
}

// 求值
x[0] = 1;
x[1] = 1;
for(a=2;a<Times;a++)
x[a]=x[a-1]+x[a-2];

// 输出结果
for(a=0;a<Times;a++)
{
printf("第%2d个月:%d\n", a+1, x[a]);

if ((a!=0) && (a%10 == 0))
printf("\n");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-23
不会自动赋值,而是一堆乱七八糟的内存值,打印出来就是乱码
第2个回答  2013-12-23
不会自动赋值,默认为空
相似回答