什么是数组?数组就是变量的组合,是一种批量定义相同类型变量的方式。
所谓一维数组,就是把变量排成一排,通过编号访问。
所谓二维数组,就是把变量排成一个矩阵,通过行号和列号来具体访问某个变量。
所谓变长数组,就是定义数组时,使用变量作为数组的长度,这种数组称为变长数组。
1 一维数组
1.1 定义
类型名 数组名[数量];
例如:
int arr[5];
1.2 使用方式
数组名[下标];
*注意:
① 数组的长度一旦确定,无法改变;
② 下标从0开始,范围0~数量-1。
1.3 数组遍历
数组的数据从头到尾显示或访问;
一般用法是与for循环配合,把循环变量i当做数组下标。
1.4 初始化
类型名 数组名[数量]={数据1,数据2...};
*注意事项:
① 数组与变量一样,默认值随机,所以一般都要先初始化
② 数组不能整体初始化,只能逐个初始化。
int arr[20]=0 这是错误的。
③ 这种初始化的语法只能在定义数组时使用。
④ 初始化数据过多,编译器会产生警告并将多余的数据丢弃。
⑤ 初始化数据过少,编译器会自动补0。
⑥ 初始化数据可以全部省略,只写{},相当于全部成员初始化为0。
⑦ 如果有初始化数据,则可以省略数组数量,因为编译器会自动统计数据个数然后确定数组数量。
计算数组的总字节:sizeof(数组名);
计算数组成员的字节数:sizeof(arr{0});
计算数组长度的公式:sizeof(arr)/sizeof(arr[0]);
2 二维数组
2.1 定义
类型名 数组名[行数][列数];
例如:
int arr[4][5];
2.2 使用方式
数组名[行数][列数];
*注意:
行下标:0~行数-1;
列下标:0~列数-1;
2.3 数组遍历
一般需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列。
例如:
int arr[4][5];
for(int i=0; i<4; i++)
{
for(int j=0; j<5; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
2.4 初始化
类型名 数组名[行数][列数]={{第1行数据},{第2行数据},{第3行数据}...};
*注意事项:
① {}内数据可以全部省略,则自动补0;
② {}内数据不省略和列数不省略,行数可以省略,编译器会自动计算行数;
③ 不能省略二维数组的列数。
3 变长数组
特点:在代码编译期间数组的长度是不确定的,只有当执行到数组定义的语句时,长度才能确定下来,并且一旦确定,长度也无法改变
优点:可以根据实际情况来确定数组的长度,从而节约内存
缺点:初始化发生在编译期间,而可变长数组的长度确定发生在运行期间,因此可变数组无法进行初始化
数组是变量的组合,用于批量定义相同类型变量。一维数组按编号访问,二维数组如矩阵,通过行号和列号访问。变长数组在执行时确定长度。文章详细介绍了数组的定义、使用方式、遍历和初始化,包括一维数组的下标范围、二维数组的双层遍历以及变长数组的特点和限制。
8077

被折叠的 条评论
为什么被折叠?



