您的位置首页百科问答

C语言中,数组初始化的问题

C语言中,数组初始化的问题

的有关信息介绍如下:

C语言中,数组初始化的问题

晕...这么多错误答案..我来说下把,对于int类型,在外部定义(意思是在所有函数外定义)的数组或者变量等等,如果不给出显示的初始化,则编译器会自动将其初始化为0如果不是在外部定义的,是局部性质的,则编译器不会对其进行初始化,他里面的值就是随机的,是乱码...至于这些你可以自己编个程序试一下啊如果要权威答案,觉得编译器不可靠,那么你可以找本书来找找,书上有这段话的说明的,不过也许你的书上没有,那你就另外要找书了,因为有些书真的不怎么好.很垃圾,讲的不全面,下面分别给你两个程序,你自己运行下就知道了程序1.//定义为局部性质的数组#include void main(){ int a[5]; //定义局部性质的数组 int i; for(i=0;i<5;i++) { printf("%2d",a[i]); } printf("\n");}程序2.//定义为全局性质的数组#include int a[5]; //定义为全局性质的数组void main(){ int i; for(i=0;i<5;i++) { printf("%2d",a[i]); } printf("\n");}上面的两个程序都没给出显示的初始化,来判断编译器是否对它进行初始化,对比下...运行后你会发现,定义为全局性质的数组的都会被编译器自动初始化为0而非全局的,即局部性质的都不会被自动初始化显示的是乱码