首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于数组元素初始化的有关问题

2012-05-20 
关于数组元素初始化的问题“定义: static int a[5],静态存储,如果没有对a[5]进行元素赋值,则元素值都是0,而

关于数组元素初始化的问题
“定义: static int a[5],静态存储,如果没有对a[5]进行元素赋值,则元素值都是0,
而定义 : int a[5],没有赋值元素值,元素值是不确定的,”这是我看到的书上是这么说的。
但是在实践中,当我编写如下程序:

#include<stdio.h>
int main(void){
int a[20]={1,2},i;
for(i=0;i<20;i++)
printf("%d ",a[i]);
}

为什么 输出结果是 1 2 0 0 0 0 0........ 我的问题是:我定于的数组又不是静态存储的,a[2]开始元素就没有赋值,元素值不是应该是不确定的么,为什么还像静态存储一样都为0?


[解决办法]
只要你初始化了一个,全部都跟着初始化
[解决办法]
你初始化了,={1,2}后面的会初始化为0,如果int a[5];那就是随机值了。
全局变量和静态变量如果你没有给初始化值,编译器会给它一个。
[解决办法]
这个是你没有完全了解动态变量和静态变量:
动态变量:要是你不对任何一个初始化,数组的元素都不会初始化:要是对某一元素初始化了,其他的元素也将会初始化。
静态变量:不管你是否初始化,都会自动初始化为0。
你可以试试:如果你不对前两个初始化,那么就是随机的啦

热点排行