|
发表于 2022-3-13 19:12:24
|
显示全部楼层
- #include <stdio.h>
- int main()
- {
- int array[2][3] = {{1,2,3},{4,5,6}};
- int (*p1)[3] = array; // 数组指针
- int (*p2)[2][3] = &array; // 二维数组指针
- int i, j;
- for(i=0; i<2; i++) // 行
- {
- for(j=0; j<3; j++) // 列
- {
- printf("%d ", *(*(p1+i)+j)); // *(p1+i) 行的地址, j 列的地址, *(*(p1+i)+j) 取*(p1+i)行j列地址的值
- }
- }
- printf("\n");
- for(i=0; i<2; i++) // 行
- {
- for(j=0; j<3; j++) // 列
- {
- printf("%d ", *( *((*p2)+i) +j)); // (*p2)得到1维行的地址(也就是&array二维数组地址 -> array一数组地址),*((*p2)+i) 行的地址,j列的地址,
- }
- }
- printf("\n");
- return 0;
- }
复制代码 |
|