多维数组中的指针与下标之间的转换
发布时间
阅读量:
阅读量
给出以下陈述
int array[4][5][3];
AI写代码cpp
将以下声明中的各个指针表达式转换为对应的下标表达式形式。
| 指针表达式 | 下标表达式 |
|---|---|
| *array | |
| *(array+2) | |
| *(array+1)+4 | |
| ((array+1)+4) | |
| ((*(array+3)+1)+3) | |
| ((*array+1)+2) | |
| *(**array+2) | |
| **(*array+1) | |
| ***array |
- *array:
array本质上是一个指向三维数组的指针,其定义形式如下:
int (* p) [4][5][3]
该表达式表示对数组第一个元素的间接访问,而数组的起始地址为&array[0]。因此,此处的下标表达方式应为array[0]。
- *(array + 2):
array+2则是一个指向二维数组的指针,其定义如下:
int (*p) [5][3]
在该情况下,将数组地址增加2意味着跳转至第二维空间中的第三行,即&array + 5*3 *2 * 4 = &array + 120。因此起始位置为&array[2],对应的下标表达方式应为array[2]。
- *(array+1
全部评论 (0)
还没有任何评论哟~
