用指针引用二维数组元素

学习 时间:2026-03-30 21:41:50 阅读:2390
用指针引用二维数组元素int a[][],*p;如何用指针引用a[][]?p与a的区别是什么?(如:*(*(a+i)+j)和*(*(p+i)+j))

最佳回答

魁梧的蚂蚁

可靠的萝莉

2026-03-30 21:41:50

a 是数组首地址,等于 &a[0][0]。*p 声明里是指针。语句里 *p 是 指针指向的值。 语句里 p 是地址。 *p 是1个星号的指针,可以让它指向1维数组,也可以让有序地它指向2维数的各元素。int a[行][列]; a[j][i] 数组元素排列 是:第一行 的 第1列,第二列,第三列。第二行 的 第1列,第二列,第三列。第三行 的 第1列,第二列,第三列。 2维数可以看成1维数组,排成1字长蛇阵:第一行 的 第1列,第二列,第三列。。;第二行 的 第1列,第二列,第三列。;。直到最后一行最后一列。#define row 3#define col 4int a[row][col]; // 某一元素: a[j][i]int *p,i,j;排成1字长蛇阵后,一维下标,可以用二维 下标计算: j*col + i。某一元素: a[j][i] 的 数值 就是 * (p+j*col+i);----写出完整程序,依次输出所有元素,对比:#include main(){#define row 3#define col 4int a[row][col] = { 0,1,2,3,4,5,6,7,8,9,10,11};int *p;int i,j;p=&a[0][0];for (j=0;j

最新回答共有2条回答

  • 想人陪的手套
    回复
    2026-03-30 21:41:50

    a 是数组首地址,等于 &a[0][0]。*p 声明里是指针。语句里 *p 是 指针指向的值。 语句里 p 是地址。 *p 是1个星号的指针,可以让它指向1维数组,也可以让有序地它指向2维数的各元素。int a[行][列]; a[j][i] 数组元素排列 是:第一行 的 第1列,第二列,第三列。第二行 的 第1列,第二列,第三列。第三行 的 第1列,第二列,第三列。 2维数可以看成1维数组,排成1字长蛇阵:第一行 的 第1列,第二列,第三列。。;第二行 的 第1列,第二列,第三列。;。直到最后一行最后一列。#define row 3#define col 4int a[row][col]; // 某一元素: a[j][i]int *p,i,j;排成1字长蛇阵后,一维下标,可以用二维 下标计算: j*col + i。某一元素: a[j][i] 的 数值 就是 * (p+j*col+i);----写出完整程序,依次输出所有元素,对比:#include main(){#define row 3#define col 4int a[row][col] = { 0,1,2,3,4,5,6,7,8,9,10,11};int *p;int i,j;p=&a[0][0];for (j=0;j

上一篇 扔垃圾对我们环境有什么后果是什么?急用

下一篇 1957年一五计划提前完成独立的----以初步建立,以-----中心的交通运输业大为改观?