在seekij函数中
可以直接把p当做数组
写为:return p[pi][pj];
输入参数时,主函数调用写法,initij(&lin,&col); 对于普通变量要加取地址&
指针取值写法:*(*(数组名或者指针名+第几行)+第几列);
指针地址写法:*(数组名或者指针名+第几行)+第几列;//去掉外围一个*()即可
引用解释:
代码:
#include <stdio.h>
//二维数组使用指针查数据
void initij(int *pi,int *pj)
{
printf("请输入要查询的行列值:\n");
scanf("%d",pi);
scanf("%d",pj);
puts("done");
}
//指针写法
int seekij(int (*p)[3],int pi,int pj)//数组指针
{
int data;
data=*(*(p+pi)+pj);
return data;
//return p[pi][pj]
}
/* 不用指针写法
int seekij(int arr[][3],int pi,int pj)
{
int data;
data=arr[pi-1][pj-1];
return data;
}
*/
int main()
{
int arr[2][3]={{11,22,33},{44,55,66}};
int lin,col;
int data;
//1.输入要查询的行列值
initij(&lin,&col);
//2.查询二维数组里的值
data=seekij(arr,lin,col);
//3.输出值
printf("%d行%d列的数据为%d",lin,col,data);
return 0;
}