指標是c語言的重要組成部分, 於是深入理解指標並且高效地使用指標可以使程式設計師寫出更加老練的程式。我們要記住指標是乙個指向記憶體位址的變數。指標可以引用如int、char……常見的資料型別,例如:
int * intptr; //宣告乙個指向整型值的指標
int intval = 5 ; //
定義乙個整型變數
intptr = & intval ; //
intptr現在包含intval的位址
指標不僅僅指向常規的型別還可以指向函式
函式指標的內容不難理解,不再贅述,參見《c語言函式指標的用法》
語法要宣告乙個函式指標,使用下面的語法:
return type(*function pointer's variable name)(parameters)
例如宣告乙個名為func的函式指標,接收兩個整型引數並且返回乙個整型值
int (*func)(int a , int b ) ;
可以方便的使用型別定義運用於函式指標:
typedef int (*func)(int a , int b ) ;
我們首先定義乙個名為operation的函式指標:
typedef int (*operation)(int a , int b );
再定義乙個簡單的名為str的結構體
typedef struct _str str;
現在來定義兩個函式:add和multi:
//a和b相加
int add (int a, int b)
//a和b相乘
int multi (int a, int b)
現在我們可以寫main函式,並且將函式指標指向正確的函式:
int main (int argc , char **ar**)
執行結果如下:
the result is 8完整的**如下:the result is 15
#includetypedef int (*operation)(int a, int b);typedef struct _str str;
//a和b相加
int add (int a, int b)
//a和b相乘
int multi (int a, int b)
int main (int argc , char **ar**)
C語言結構體中的函式指標
結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。所以,標準c中的結構體是不允許包含成員函式的,當然c 中的結構體對此進行了擴充套件。那麼,我們在c語言的結構體中,只能 通過定義函式指標的方式,用函式指標指向相應函式,以此達到呼叫函式的目的。1.函式指標 一般的函式指標可以這麼定義 int...
C語言結構體中的函式指標與函式
1 函式指標 一般的函式指標可以這麼定義 int func int,int 表示乙個指向含有兩個int引數並且返回值是int形式的任何乙個函式指標.假如存在這樣的乙個函式 int add2 int x,int y 那麼在實際使用指標func時可以這樣實現 func add2 指標賦值,或者func ...
詳解C語言結構體中的函式指標
結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。所以,標準c中的結構體是不允許包含成員函式的,當然c 中的結構體對此進行了擴充套件。那麼,我們在c語言的結構體中,只能通過定義函式指標的方式,用函式指標指向相應函式,以此達到呼叫函式的目的。函式指標 函式型別 指標變數名 形參列表 第乙個括...