一维数组
1.数组的创建
在C中,几乎所有使用数组名的表达式中,数组名的值是一个指针变量,也就是数组第一个元素的地址。它的类型取决于数组元素的类型。
数组创建的方式:
type_t array_name [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小
数组的创建:
int array1[5];
char array2[10];
float array3[20];
double array4[7];
2.数组的初始化
int array1[5] = { 1, 2, 3, 4, 5 };
int array2[5] = { 4, 5, 6 }; //不完整初始化,后两个元素初始化为0
int array3[] = { 11, 12, 13, 14, 15 }; //自动计算数组长度
//字符数组的初始化
char message1[] = { 'h', 'e', 'l', 'l', 'o',0 };
char message2[] = "hello"; // 初始化一个字符数组的元素
char *message3 = "hello"; //指针变量被初始化为指向这个字符串常量的存储位置
3.下标引用
除优先级之外,下标引用和间接访问完全相同。
//下标引用
array[count_n]; //下标在数组中选择一个特定的元素
//间接访问
*( array + [count_n]); //访问它指向的那个数组元素
小例子:
int arrary10] ;
int ap = array + 2;
在下面各个涉及ap的表达式中,看看你能不能写出使用array :
ap | amay + 2 / &array[2] |
*ap | *(array+2) |
ap[0] | array[2] |
ap+6 | array+8 / &array[8] |
*ap+6 | array[2]+6 |
*(ap+6) | array[8] |
ap[6] | array[8] |
ap[-1] | array[1] |
ap[9] | 错误 |
4.计算长度
计算数组的长度:公式:sizeof(数组名) / sizeof(数组类型);
sizeof(数组名): 得到这个数组占用内存的总长
例子:int array[10];
int size = sizeof(array) / sizeof(array[0]);
二维数组
1.初始化
int tow_dim1[2][3];
int tow_dim2[2][2] = { 1, 2, 3, 4 };
int tow_dim3[2][4] = {
{ 11, 12, 13, 14 },
{ 21, 22, 23, 24 },
};
// 自动计算长度,其他值初始化为0
int tow_dim4[][5] = {
{ 11 },
{ 21, 22, 23, 24 },
{ 4, 12 },
};
2.下标
下标访问:
例如:
1. int array[3][8];
直接访问操作:
2. int array[2][8]
间接访问操作:
3.计算长度:
二维数组计算列数: 每行的总长度 / 元素占用的字节
sizeof(二维数组名[0]) / sizeof(类型)
例: int nums[3][4];
int size = sizeof(nums[0]) / sizeof(int); //计算结果是4
二维数组计算行数: 二维数组的总长度 / 每行的长度
sizeof(二维数组名) / sizeof(而数组名[0])
例: int nums[3][4];
int size = sizeof(nums) / sizeof(nums[0]); //计算结果是3