int* f,g;
他並沒有宣告兩個指標,儘管他們之間存在空白,但星號只做用於f,f指標,g只是乙個普通的整形變數。
int *f( )
他表示f是個函式,他的返回值型別是乙個指向整型的的指標。( )是函式呼叫操作符
int (*f) ( )
第二個括號是函式呼叫操作符,第乙個括號只起到聚組作用,他迫使函式呼叫之前使f成為乙個函式指標,它所指向的函式返回乙個整形值。
int *(*f)( )
f是乙個函式指標,只是所指向的返回值是乙個整形指標;
int f[ ]
表示f是個整形陣列
int *f[ ]
兩個操作符,下標的優先順序更高,所以f是乙個陣列,它的元素型別是指向整型的指標。
int (*f[ ])( )
f是乙個元素為某種型別的指標的陣列,末尾的括號是函式呼叫操作符,所以f一定是陣列,陣列元素的型別是函式指標,它所指向的函式的返回值是乙個整形值。
int *(*f[ ])( )
這個宣告建立了乙個指標陣列,指標所指向的型別是返回值為整形指標的函式。
函式指標的兩個主要用途是轉換表和作為引數傳遞給另乙個函式『。』
函式指標執行間接訪問之前必須把它初始化為指向某個函式。
例如: int(*pf) (int)=&f;
指標的高階應用
指標陣列 本質是陣列 只是陣列的每個元素 是指標。arr 才代表陣列的首位址 1213 printf d n p 3 4014 p 3 p 0 3 p 0 3 p 0 3 15 printf d n p 0 3 4016 17 總結 指標陣列 本質是陣列 只是陣列的每個元素是指標...
C C 高階語法 函式指標及其應用
int getdata int num 形如上面的形式的為指標函式,指標函式實際上就是函式,只是返回型別為指標。在 結構體的深度拷貝中 createat 函式便是乙個指標函式,用來得到結構體物件。這種用法很普遍 基本上是這麼用的 我們在打下基礎的時候要把這一點給掌握好了。之前說過陣列是一種型別,其形...
結構體對函式指標的高階封裝應用
作用 降低對底層應用程式的高耦合度 示例 include mac.h typedef struct phy tphy t 用法一 extern phy t phy 1,phy 2 變數可供所有檔案使用 只需包含該標頭檔案 需要在include mac.c 定義一下變數 phy t phy 1,phy...