数组的定义与初始化
c语言中:
一、一维数组
1.全部定义,赋值:int a【10】={0,1,2,3,4,5,6,7,8,9};
2. 全部定义,部分赋值:int a[10] = {0,1,2}; 表明只给前三个元素赋值,后面的初始化为0;
3. 将一个数组中的数据全部赋值为0:int a[10] = {0}; 或 int a[10] = {0,0,0,0,0,0,0,0,0,0};
4. 长度不定义,由元素个数指定:int a[] = {0,1,2,3,4}; 即:int a[5] = {0,1,2,3,4};
5. 最直接的方法就是整体定义,分别赋值:int a[10]; 用for来赋值.
二、二维数组
1. 分行给二维数组初始化:int a[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 二维数组定义:数组名[常量表达式][常量表达式]
2. 将所有数据放在一个大括号内,按数组排列的顺序,对各元素赋值: int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
3. 可以对部分元素赋值:int a[3][4] = {{0,1},{4},{8,9,10}};
4. 如果对全部元素都赋初值,则定义数组时,第一维可以不指定,而只指定第二维: int a[][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
三、字符数组
1. 初始化:
char c[10] = {'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'};//刚好10个字符定义:char c[10];
如果定义的数组长度大于字符个数,后面自动赋值为:'\0';
如果提供的字符个数定于数组长度,可以省略数组长度。
2. 字符串的初始化:
可以使用如下方法初始化字符串:char c[] = {"I am happy"}; 或char c[] = "I am happy";
等价于char c[] = {'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y', '\0'}; 后面的'\0'是系统自动加上的,人工定义时,是否加'\0',完全看需要。
但是为了统一起见,定义时,常手工加上'\0'。