网站 栏目添加 文章不显示,网站内容通过服务器会不会被更改,免费兼职一单一结,百度知道小程序数组是一组相同类型元素的集合。 在C99标准之前#xff0c;数组的大小必须是常量或常量表达式。 在C99标准之后#xff0c;数组的大小可以是变量#xff0c;可以支持变长数组#xff0c;但变长数组不能初始化。 不完全初始化#xff0c;剩余的元素默认初始化为0 。 数组访… 数组是一组相同类型元素的集合。 在C99标准之前数组的大小必须是常量或常量表达式。 在C99标准之后数组的大小可以是变量可以支持变长数组但变长数组不能初始化。 不完全初始化剩余的元素默认初始化为0 。 数组访问操作符下标引用操作符---- [ ] 数组是使用下标来访问的下标是从 0 开始的。 数组的大小可以通过计算得到。
int arr[10] {0};
int sz sizeof(arr) / sizeof(arr[0]); 数组在内存中是连续存放的。
#include stdio.hint main()
{int arr[10] {1,2,3,4,5,6,7,8,9,10};int sz sizeof(arr) / sizeof(arr[0]);int i 0;for(i 0;i sz - 1;i)printf(arr[%d]的地址是%p\n,i,arr[i]);return 0;
} 二维数组的使用也是通过下标的方式。 可以把二维数组理解为一维数组的数组即二维数组里每个元素都是一个一维数组。
#include stdio.hint main()
{int arr[3][4] {1,2,3,4,5,6,7,8,9,10,11,12};int i 0;int j 0;for(i 0;i 3;i)for(j 0;j 4;j)printf(arr[%d][%d]的地址是%p\n,i,j,arr[i][j]);return 0;
} 分析图上地址二维数组在内存中也是连续存储的。 数组传参的时候形参有两种写法 1.数组 2.指针 数组名本质上是数组首元素的地址但是这个说法也不太准确数组名确实能表示首元素的地址但是有两个例外
1.sizeof(数组名) 这里的数组名表示整个数组计算的是整个数组的大小单位是字节。
2.数组名这里的数组名表示整个数组取出的是整个数组的地址。
#include stdio.hint main()
{int arr[10] {10,2,3,14,5,6,17,8,9,1};int n 0;printf(%p\n,arr);printf(%p\n,arr 1);printf(%p\n,arr[0]);printf(%p\n,arr[0] 1);printf(%p\n,arr);printf(%p\n,arr 1);n sizeof(arr);printf(%d\n,n);return 0;
} 二维数组的数组名也表示二维数组首元素的地址二维数组首元素相当于第一行元素也就是一个一维数组第一行元素4个数组元素是 int 类型一共是4 * 4 16字节。
#include stdio.hint main()
{int arr[3][4] {1,2,3,4,5,6,7,8,9,10,11,12};int n 0;int row 0;int col 0;printf(%p\n,arr);printf(%p\n,arr 1);printf(%p\n,arr[0]);printf(%p\n,arr[0] 1);printf(%p\n,arr);printf(%p\n,arr 1);n sizeof(arr);row sizeof(arr) / sizeof(arr[0]);//行col sizeof(arr[0]) / sizeof(arr[0][0]);//列printf(%d\n,n);printf(%d\n,row);printf(%d\n,col);return 0;
}