1. 返回值含义
返回值有时存在两种情况:合法值和非法值。
如果有非法值的情况,通常使用一些特定的值指代特殊情况。例如:数组下标只能是0和正数。我们实现数组查找元素下标时,存在找不到元素的情况,这时,使用-1可以作为这种情况的返回值。
返回值的含义以及值是人为定义的
2. 二维数组指针用法
- 一维数组指针用法
No. | 操作 | 下标 | 指针 |
---|---|---|---|
1 | 第i 个元素值 | arr[i] | *(arr+i) |
2 | 第i 个元素地址 | &arr[i] | arr+i |
- 二维数组指针用法
No. | 操作 | 下标 | 指针 |
---|---|---|---|
1 | 第i 行第j 列元素值 | arr[i][j] | *(*(arr+i)+j) |
2 | 第i 行第j 列元素地址 | &arr[i][j] | *(arr+i)+j |
在二维数组中a[i]就是一个一维数组,二维数组数组名是第一个元素的首地址。
3. 一维数组多维使用方式
3.1 一维数组转二维数组
int n = 24;
int arr[n];
for(int i=0;i<n;++i){
arr[i] = i;
}
int rows = 4;
int cols = 6;
for(int i=0;i<rows;++i){
for(int j=0;j<cols;++j){
printf("%d ",arr[i*cols+j]);
}
printf("\n");
}
3.2 一维数组转三维数组
int n = 24;
int arr[n];
for(int i=0;i<n;++i){
arr[i] = i;
}
int pages = 2;
int rows = 4;
int cols = 3;
for(i=0;i<pages;++i){
for(j=0;j<rows;++j){
for(k=0;k<cols;++k){
printf("%d ",arr[i*rows*cols+j*cols+k]);
}
printf("\n");
}
printf("\n");
}