#include <iostream>
using namespace std;
void fun1(int(*pArr)[3], int row)
{
int i,j;
for (i = 0; i < row; i++)
{
for (j = 0; j < 3; j++)
cout << pArr[i][j] << " ";
cout << endl;
}
}
int main()
{
//数组指针,指向数组的指针变量,注意int* p;这个p只是指向一个int型变量,但不是指向一个数组
int (*pArr)[3];
int a1[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} };
pArr = a1;
int a2[2];
printf("pArr=%p,pArr+1=%p\n", pArr, pArr + 1);//相差了12个字节
printf("a2=%p,a2+1=%p\n", a2, a2 + 1);//相差4个字节
//指针数组,是一个数组,数组中的元素都是指针
char* pStr[2];
//函数指针,指向函数的指针变量
void(*pFn)(int(*pArr)[3], int row);
pFn = fun1;
pFn(a1,3);
getchar();
return 0;
}
运行结果:
pArr=0018F8A8,pArr+1=0018F8B4
a2=0018F898,a2+1=0018F89C
1 2 3
4 5 6
7 8 9