C/C++数组指针、指针数组、函数指针变量的声明和用法

#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

猜你喜欢

转载自blog.csdn.net/csdn_gddf102384398/article/details/84726410