数组:一组
相同类型元素的集合,这些数据在内存中
连续存放。
一、一维数组
创建和初始化
type_t arr_name[const_n];
int arr[10] = { 1,2,3,4,5 };
int arr2[10] = {1,2,3,4,5,6,7,8,9,10};
int arr4[] = {1,2,3,4};
使用
arr[0]=5;
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
在内存中的存储
数组在内存中是连续存放的
二、数组
以二维数组居多,所以这里主要讨论二维,再其实是相似的。
创建和初始化
int arr1[3][3];
int arr[3][4] = { 1,2,3,4,5 };
int arr[3][4] = { { 1,2 },{ 3,4 },{ 5 } };
int arr[][4] = { { 1,2 },{ 3,4 },{ 5 } };
int arr[][4] = {1,2,3,4,5,6,7,8};
使用
int main()
{
int arr[][3] = { { 1,2 },{ 3,4 },{ 5 } };
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
在内存中的存储
三、常见问题
数组越界
数组的下标范围:0~n-1
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,所以程序员写代码时,最好自己做越界的检查
数组作为函数参数
①指针形式
②数组形式—注意时只有第一个数字可以省略