1.数组指针:定义一个指针,指向一个数组。
•数组指针才是真正等同于二维数组名
2.编程实例:
(1)指向一个含有4个元素的数组
#include <stdio.h>
int main()
{
int arr[3][4] = {{11,22,33,44},{12,13,15,16},{22,66,77,88}};
int i,j;
int (*p)[4];
p = arr;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d\n",*(*(p+i)+j));
}
}
return 0;
}
(2)输出二维数组任意行列的数
#include <stdio.h>
void tipsInputHangLie(int *pm,int *pn)
{
printf("请输入行列值:\n");
scanf("%d%d",pm,pn);
puts("done!");
}
int getTheData(int (*p)[4],int hang,int lie)
{
int data;
data = *(*(p+hang)+lie);
return data;
}
int main()
{
int arr[3][4] = {{11,22,33,44},{12,13,15,16},{22,66,77,88}};
int ihang,jlie;
int data;
//1.提示用户输入行列值
tipsInputHangLie(&ihang,&jlie);
//2.找出对应行列值的那个数
data = getTheData(arr,ihang,jlie);
//3.打印出来
printf("%d行%d列的值是%d\n",ihang,jlie,data);
return 0;
}