#include "stdio.h"
void main()
{
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; int (*p)[4],i,j;
p=a;printf("请输入元素下表i,j的值:"); scanf("i=%d,j=%d",&i,&j);
printf("你输入的元素值:"); printf("a[%d][%d]=%d\n",i,j,p[i][j]);
printf("a[%d][%d]=%d\n",i,j,*(p[i]+j)); }
使用列指针访问二维数组某元素,使用列的长度4*行的下标i+某列的位置j即为距离二维数组首元素的偏移量,取指向首元素的指针+偏移量后的指针位置的值即为对应二维数组元素的值,代码如下:
参考链接:
#include "stdio.h"
int main()
{
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
p=a;
printf("请输入元素下表i,j的值:");
scanf("i=%d,j=%d",&i,&j);
printf("你输入的元素值:");
printf("a[%d][%d]=%d\n",i,j,p[i][j]);
printf("a[%d][%d]=%d\n",i,j,*(p[i]+j));
printf("使用列指针的结果为;\n");
int * ap = &a[0][0];
printf("你输入的元素值:");
// 列指针访问数组某元素,即行的下标数i*每行的长度4+某列的位置j,即可用列指针访问二维数组对应的数组元素
// https://blog.csdn.net/GenuineMonster/article/details/104669402
printf("a[%d][%d]=%d\n",i,j,*(ap+4*i+j));
return 0;
}