1. 程式人生 > >C語言的一些複雜型別宣告

C語言的一些複雜型別宣告

一些比較複雜的宣告例項(C Primer Plus中的例子)
陣列後面的[]和函式名後面的()具有相同的優先順序,它們比*的優先順序高。
都是從左往右結合。

int board[8][8];

int ** ptr;   
//一個指向指標的指標,每個元素都是一個指向int的指標
int * risk[10];
//內含10個元素的陣列,每個元素都是一個指向int的指標
int (* rusks)[10];
//一個指向陣列的指標,該陣列內含有10個int型別的值
int * oof[3][4];
//一個二維陣列,每個元素都是指向int的指標
int (* uuf) [3][4];
//一個指向3*4二維陣列的指標,該陣列內含有int型別值
int (* uof[3]) [4];
//一個內含三個指標元素的陣列,每個指標都指向陣列,該陣列內含有4個int型


//指標,pr,pg都是指向float型別變數的指標
float * pr,*
pg; //函式指標 char * fump(int); char (* frump)(int); char (* flump[3]) (int);

函式指標常用作另一個函式的引數,告訴該函式要使用哪一個函式。

宣告函式指標:先宣告一個該型別的函式,再把函式名替換為(* pf)形式的表示式。pf就成為指向該型別函式的指標。