C语言指针与函数指针的深入解析
1. 指针与二维数组
1.1 二维数组元素存储方式
二维数组元素按行依次存储在连续的内存位置。例如,对于一个二维数组,先存储第一行元素,接着是第二行元素,以此类推。以下代码展示了如何输出二维数组元素的内存地址:
#include <stdio.h>
int main(void)
{
int i, j, a[2][3];
for(i = 0; i < 2; i++)
for(j = 0; j < 3; j++)
printf("Addr[%d][%d]:%p\n", i, j, &a[i][j]);
return 0;
}
1.2 二维数组的指针表示
C语言将二维数组视为一维数组,每个元素又是一个数组。以数组 a 为例, a[0] 、 a[1] 等可作为指向各自行首元素的指针。具体关系如下:
- a[0]+j 等价于 &a[0][j]
- *(a[0]+j) 等价于 a[0][j]
一般情况下:
- a[i]+j 等价于 &a[i][j]
- *(a[i]+j) 等价于
超级会员免费看
订阅专栏 解锁全文

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



