C語言結構體中的函式指標

2021-07-09 19:52:55 字數 703 閱讀 9219

結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。所以,

標準c中的結構體是不允許包含成員函式的,當然c++中的結構體對此進行了擴充套件。那麼,我們在c語言的結構體中,只能

通過定義函式指標的方式,用函式指標指向相應函式,以此達到呼叫函式的目的。

1. 函式指標

一般的函式指標可以這麼定義:

int(*func)(int,int);

表示乙個指向含有兩個int引數並且返回值是int形式的任何乙個函式指標. 假如存在這樣的乙個函式:

int add2(int x,int y)

那麼在實際使用指標func時可以這樣實現:

func=&add2; //指標賦值,或者func=add2; add2與&add2意義相同

printf("func(3,4)=%d"n",func(3,4));

事實上,為了**的移植考慮,一般使用typedef定義函式指標型別.

typedef int(*fun)(int,int);

fun func=&add2;

func();

2.結構體中包含函式指標

其實在結構體中,也可以像一般變數一樣,包含函式指標變數.下面是一種簡單的實現.

#include "stdio.h"

struct demo ;

int add2(int x,int y)

void main()

C語言結構體中的函式指標

指標是c語言的重要組成部分,於是深入理解指標並且高效地使用指標可以使程式設計師寫出更加老練的程式。我們要記住指標是乙個指向記憶體位址的變數。指標可以引用如int char 常見的資料型別,例如 int intptr 宣告乙個指向整型值的指標 int intval 5 定義乙個整型變數 intptr ...

C語言結構體中的函式指標與函式

1 函式指標 一般的函式指標可以這麼定義 int func int,int 表示乙個指向含有兩個int引數並且返回值是int形式的任何乙個函式指標.假如存在這樣的乙個函式 int add2 int x,int y 那麼在實際使用指標func時可以這樣實現 func add2 指標賦值,或者func ...

詳解C語言結構體中的函式指標

結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。所以,標準c中的結構體是不允許包含成員函式的,當然c 中的結構體對此進行了擴充套件。那麼,我們在c語言的結構體中,只能通過定義函式指標的方式,用函式指標指向相應函式,以此達到呼叫函式的目的。函式指標 函式型別 指標變數名 形參列表 第乙個括...