C/C++陣列指標、指標陣列、函式指標變數的宣告和用法
阿新 • • 發佈:2018-12-14
#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