av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

C語言

C語言結(jié)構(gòu)體中的函數(shù)指針

時間:2025-03-21 15:26:18 C語言 我要投稿
  • 相關(guān)推薦

C語言結(jié)構(gòu)體中的函數(shù)指針

  C語言結(jié)構(gòu)體中的函數(shù)指針內(nèi)容由小編收集整理,希望對您的 學(xué)習(xí)有所幫助!更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!

  結(jié)構(gòu)體是由一系列具有相同類型或不同類型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合。所以,標(biāo)準(zhǔn)C中的結(jié)構(gòu)體是不允許包含成員函數(shù)的,當(dāng)然C++中的結(jié)構(gòu)體對此進行了擴展。那么,我們在C語言的結(jié)構(gòu)體中,只能通過定義函數(shù)指針的方式,用函數(shù)指針指向相應(yīng)函數(shù),以此達(dá)到調(diào)用函數(shù)的目的。

  1. 函數(shù)指針

  一般的函數(shù)指針可以這么定義:

  int(*func)(int,int);

  表示一個指向含有兩個int參數(shù)并且返回值是int形式的任何一個函數(shù)指針. 假如存在這樣的一個函數(shù):

  int add2(int x,int y)

  {

  return x+y;

  }

  那么在實際使用指針func時可以這樣實現(xiàn):

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

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

  事實上,為了代碼的移植考慮,一般使用typedef定義函數(shù)指針類型.

  typedef int(*FUN)(int,int);

  FUN func=&add2;

  func();

  2.結(jié)構(gòu)體中包含函數(shù)指針

  其實在結(jié)構(gòu)體中,也可以像一般變量一樣,包含函數(shù)指針變量.下面是一種簡單的實現(xiàn).

  #include "stdio.h"

  struct DEMO

  {

  int x,y;

  int (*func)(int,int); //函數(shù)指針

  };

  int add2(int x,int y)

  {

  return x+y;

  }

  void main()

  {

  struct DEMO demo;

  demo.func=&add2; //結(jié)構(gòu)體函數(shù)指針賦值

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

  }

【C語言結(jié)構(gòu)體中的函數(shù)指針】相關(guān)文章:

C語言指針函數(shù)和函數(shù)指針詳解12-08

C語言的指針型函數(shù)02-20

C語言函數(shù)指針變量06-04

C語言中指針函數(shù)與函數(shù)指針有何區(qū)別02-28

C語言函數(shù)指針與回調(diào)函數(shù)詳解03-26

初步剖析C語言編程中的結(jié)構(gòu)體02-18

講解C語言編程中的結(jié)構(gòu)體對齊01-17

C語言的指針12-21

C語言結(jié)構(gòu)體定義06-25