函式指標 typedef等

2021-07-04 14:38:03 字數 1206 閱讀 9464

1、指標函式是指帶指標的函式,即本質是乙個函式。函式返回型別是某一型別的指標

型別識別符號 *函式名(參數列)

int *f(x,y);

指標函式比較簡單吧

函式指標是指向函式的指標變數,即本質是乙個指標變數。

int (*f) (int x); /* 宣告乙個函式指標 */

f=func; /* 將func函式的首位址賦給指標f */

指向函式的指標包含了函式的位址,可以通過它來呼叫函式。宣告格式如下:

型別說明符 (*函式名)(引數)

其實這裡不能稱為函式名,應該叫做指標的變數名。這個特殊的指標指向乙個返回整型值的函式。指標的宣告筆削和它指向函式的宣告保持一致。

指標名和指標運算子外面的括號改變了預設的運算子優先順序。如果沒有圓括號,就變成了乙個返回整型指標的函式的原型宣告。

例如:void (*fptr)();

把函式的位址賦值給函式指標,可以採用下面兩種形式:

1.  fptr=&function;

2.  fptr=function;

取位址運算子&不是必需的,因為單單乙個函式識別符號就標號表示了它的位址,如果是函式呼叫,還必須包含乙個圓括號括起來的參數列。

可以採用如下兩種方式來通過指標呼叫函式:

1. x=(*fptr)();

2. x=fptr();

第二種格式看上去和函式呼叫無異。但是有些程式設計師傾向於使用第一種格式,因為它明確指出是通過指標而非函式名來呼叫函式的。

typedef的功能是定義新的型別。

第一句就是定義了一種func的型別,並定義這種型別為指向某種函式的指標,這種函式以乙個int為引數並返回char型別。後面就可以像使用int,char這些基本型別一樣使用func這個型別了。

下面**用func定義,就代表pfun是乙個輸入int,返回char的函式指標;

glfun是乙個已知的函式。

main函式第一行**,用乙個已經定義的函式指標賦值給這個新型別定義了變數pfun。

main函式 第二行的**,顯示的呼叫了pfun這個函式指標,當然也可以pfun(2)這麼呼叫效果是一樣的,最後都是呼叫了glfun(2)。

typedef char (*func)(int); 

func pfun;

char glfun(int a)

void main()



typedef 函式指標

關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...

typedef 函式指標

形式1 返回型別 函式名 參數列 cpp view plain copy print?char pfun int char glfun int a void main char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面...

typedef函式指標

typedef int myfun int,int 這種用法一般用在給函式定義別名的時候 上面的例子定義myfun 是乙個函式指標,函式型別是帶兩個int 引數,返回乙個int 在分析這種形式的定義的時候可以用下面的方法 先去掉typedef 和別名,剩下的就是原變數的型別.去掉typedef和my...