1. 程式人生 > >C/C++陣列指標、指標陣列、函式指標變數的宣告和用法

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