複雜的宣告

2021-07-24 19:56:37 字數 906 閱讀 1148

int a;   整型變數

int *a;   整型指標變數

int **a;  整型指標的指標變數

int a[10];  整型陣列

int *a[10];  整型指標陣列

int (*a)[10];  陣列指標變數

int (*a)[int];  函式指標變數 

int (*a[10])(int); 函式指標陣列

int *(*(

*fp1

)(int

))[10];

fp1:函式指標變數,指向形參為

int,返回值為乙個陣列指標,該指標指向乙個整型指標陣列。

int *(*(

*arr[5]

)())();

arr是函式指標陣列,該陣列裡的元素指向乙個形參為空,返回值為函式指標,該指標指向乙個形參為空,返回值為

int*

float(*(

*b())

)();

b :函式   該函式形參為空,返回值指向陣列指標,

該指標指向乙個函式指標陣列,陣列元素指向形參為空,返回值為float的函式。

void*(

*c)(

char a

,int(*b

)());

c:函式指標變數,指向乙個有兩個引數的返回值為

void*

的函式,第乙個形參為

char

,第二個

形參函式指標,該指標指向乙個形參為空,返回值為int的函式。

float(*(

*e[10]

)(int*

))[5];

e:函式指標陣列  陣列裡的元素指向乙個形參為

int*

,返回值為陣列指標

,指向的陣列為float型陣列。

指標 複雜的宣告

int fp1 int 10 1.從變數名開始 fp1 2.往右看,是 因此往左看,是 乙個指標 3.跳出括號,碰到了 int 乙個帶乙個int引數的函式 4.向左看,發現乙個 函式 返回乙個指標 5.跳出括號,向右看,碰到 10 乙個10元素的陣列 6.向左看,發現乙個 指標 7.向左看,發現in...

指標 複雜的宣告

int fp1 int 10 閱讀步驟 1.從變數名開始 fp1 2.往右看,是 因此往左看,是 乙個指標 3.跳出括號,碰到了 int 乙個帶乙個int引數的函式 4.向左看,發現乙個 函式 返回乙個指標 5.跳出括號,向右看,碰到 10 乙個10元素的陣列 6.向左看,發現乙個 指標 7.向左看...

C C 複雜的宣告

入門階段,看見類似void fp1 int 10 的複雜宣告,暈乎。直接略過,這種複雜的東東,不應該是入門者需要去學習的知識。高階階段,這種知識就必需得搞得清清楚楚了,不然還等到高階階段才學習這個麼?現在,就來帶大家了解一下,這類複雜的宣告怎麼解?在解之前,先看乙個入門的知識點,指標函式作為引數傳遞...