C語言的一些複雜型別宣告
阿新 • • 發佈:2019-02-03
一些比較複雜的宣告例項(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就成為指向該型別函式的指標。