一维数组
- 数组初始化
数组初始化是一种缺省的初始化方式。对于部分初始化的数组,未初始化的数组成员编译器会自动填充为缺省值(int型数组填充为0,char型为‘\0’)。但是为初始化的数组,其成员值是其所在存储空间中未清空的数据。
int num[5]={1,2,3,4,5};
int num[5]={1,2};
int num[]={1,2,3,4,5};
这里注意两种情况:
int num[5]={};//这个时候系统会把数组都进行缺省赋值
int num[]={};//这种定义方式下,可以理解为num是一个指针,他所占的空间大小为0.
- 数组的引用
数组引用格式:
数组名[下标]
这里要注意,下标从0开始,而且只能是整型,可以是一个整型常量,也可以是整形表达式。而且C语言不进行严格的下标越界检查,编译时不会报错。
二维数组
- 二维数组定义
数据类型 数组名[常量][常量];
二维数组的数据按行依顺序存放,多维数组类似。
- 二维数组初始化
int a[2][2]={1,2,3,4};
int a[2][2]={{2},{1,3}};
int a[][2]={1,2,3};
//这里要注意,二维数组一维的数值是可以省略的,但其他的不行
字符数组和字符串
字符数组除了数组成员的类型是字符型之外,与一般数组没有太大区别,它可以是一维数组,也可以是多维的。它的定义方式与一般数组无二。
字符数组的初始化:
- 逐个元素赋值
char 数组名[数组长度]={字符1,字符2,字符3…字符n}; - 作为字符串赋值
char 数组名[数组长度]=“字符串”;
后一种方式下,系统会在数组最后加上’\0’标识着字符串的结束。
常用的字符串处理函数:
- strcpy(目标地址,源地址):把源地址的字符串复制到目标地址;
- strcat(目标地址,源地址):把源地址的字符串复制到目的地址字符串的后面;
- strcmp(char *str1,char *str2):按照字典顺序比较两个字符串,相等返回0,否则返回非0值。
- strlen(char *str):返回字符串的长度(以’\0’为结束标志)。