类型说明符 数组名[常量表达式] = { 值, 值......值 };
其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。
1)指定元素的个数的同时,对所有的元素进行显式的初始化
int nums[5] = {1,2,3,4,5};
2)指定数组的元素个数,对数组进行部分显式初始化 定义的同时对数组进行初始化,没有显式初始化的元素,
那么系统会自动将其初始化为0
int num[5] = {1} ---> 1,0,0,0,0
3)不指定元素个数,定义的同时初始化,它是根据大括号中的元素的个数来确定数组的元素 个数
int nums[] = {1,2,3,5,6};
4)指定元素个数,同时给指定元素进行初始化
int nums[5] = {[4] = 3,[1] = 2};
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外
还可采用初始化赋值和动态赋值的方法
先定义后初始化
int a3[5];
a3[0] = 1; //给数组第一个元素赋值
a3[1] = 2; //给数组第二个元素赋值
a3[2] = 3;
a3[3] = 4;
a3[4] = 5;
注意点:
以下的写法是错误的
int len = 4;
int a5[len]={1,2,3,4}; //只能定义,不能初始化
问题:如果一个数组进行了部分初始化,没有初始化部分存放的到底是什么值?
答案:如果一个数组进行了部分初始化,那么这个数组没有初始化的部分,自动初始化为0
字符数组没有初始化那部分的元素得ascii码值也被系统初始化为0了
特别强调:使用先定义后初始化的方式,如果部分数组元素被初始化了,系统不会对没有初始化的那部分元素进行赋值0的操作
问题2:如果一个数组定义后,不进行初始化,此时数组的每一个元素值是多少?
答案:垃圾值
|
|