1樓:匿名使用者
這裡的name變數不是普通資料型別,是一個函式指標。
1、函式指標是指向函式的指標變數。 因而「函式指標」本身首先應是指標變數,只不過該指標變數指向函式。這正如用指標變數可指向整型變數、字元型、陣列一樣,這裡是指向函式。
c在編譯時,每一個函式都有一個入口地址,該入口地址就是函式指標所指向的地址。有了指向函式的指標變數後,可用該指標變數呼叫函式,就如同用指標變數可引用其他型別變數一樣,在這些概念上是大體一致的。函式指標有兩個用途:
呼叫函式和做函式的引數。
2、函式指標的宣告方法為:
返回值型別( * 指標變數名) (形參列表);
「返回值型別」說明函式的返回型別,「( * 指標變數名)」中的括號不能省,括號改變了運算子的優先順序。若省略整體則成為一個函式說明,說明了一個返回的資料型別是指標的函式,後面的「形參列表」表示指標變數指向的函式所帶的引數列表。例如:
int func(int x); /* 宣告一個函式 */int (*f) (int x); /* 宣告一個函式指標 */f = func; /* 將func函式的首地址賦給指標f */或者使用下面的方法將函式地址賦給函式指標:
f = &func;
賦值時函式func不帶括號,也不帶引數,由於func代表函式的首地址,因此經過賦值以後,指標f就指向函式func(x)的**的首地址。
例子:#include
int max(int x,int y)
int main()
2樓:匿名使用者
name是函式指標,這樣就可以靈活的匹配對應的函式來處理資料
3樓:匿名使用者
將 函式指標 賦值給結構體中成員為 name,之後呼叫就是 .name();
struct file ;
struct file my_file = ;
相當於struct file my_file = ;
c語言中,結構體型別名和變數名之間有什麼區別?如何區分?
4樓:匿名使用者
struct stu(…
)stu1;
stu就是型別名,stu1就是變數名,函式裡面可以用struct stu s這種形勢繼續定義像s這樣變數,扯指標就有點小麻煩。記得不是很清了,大概是這樣,另,不用給分了,好歹加了好友的
5樓:匿名使用者
結構體名字是類名,變數名是實體名,一個類可以有許多實體。好比說籠統說「鉛筆」是一個類,那麼文具盒裡面具體的每一支鉛筆都是一個實體。結構體的成員只起到規劃的作用,變數才是具體實施的。
能理解否???
在c語言中如何實現函式,在c語言中如何實現函式模板
go陌小潔 各種用 c 語言實現的模板可能在使用形式上有所不同。現以一個求和函式 sum 為例,用 c template 可寫如下 template r sum const t array,int n 如果不是內建型別,該模板隱式地需要 有r r operator t 運算子可用。1.使用函式指標作...
C語言中連結串列中的結構體指標變數問題求教
定義結構體指標變數時,只分配儲存指標型別需要的空間,比如listnode p 這裡p有給他分配儲存指標的4個位元組的空間。實際上你是要讓p指向一個結構體空間的,這個結構體空間在哪?可以先定義listnode a 然後 p a 這時p指向一個之前申請分配過空間 編譯器設定過其地址和大小,在棧空間存放著...
共用體和結構體的區別,在C語言中,結構體和共用體的概念和兩者的區別是什麼啊?
追尋複製者 一 變數長度不同 結構體變數所佔記憶體長度是各成員佔的記憶體長度之和,每個成員分別佔有其自己的記憶體單元。共用體變數所佔的記憶體長度等於最長的成員的長度。二 佔用空間不同 結構體是同時存在的,並一次佔用一段連續的記憶體空間 而共用體則是多個共用成員佔用同一個開始的記憶體地址,同時他們只能...