您好,登錄后才能下訂單哦!
// 結構體函數指針。 #include<stdio.h> //為了代碼的移植考慮,一般使用typedef定義函數指針類 ,另一個好處是,減少代碼的書寫量。 typedef void (*shout)(char *name,int age); typedef struct { //用指針來存儲字符串 char *name; int age ; shout personinfo; }person; //類似于c++中類方法的實現,在這里,是為結構體中指針函數提供實現。在26行 void printinfo(char *name,int age){ printf("name = %s"", age =%d",name, age); } int main(){ //創建一個person 結構體實例與結構體指針,并將結構體實例的地址傳給結構體指針p; person p1; person *p = &p1; p->name = "chengze"; p->age = 12 ; //賦值函數兩種都可以。 //p->personinfo = printinfo; p->personinfo = &printinfo; p1.personinfo(p->name,p->age); //printf("這樣也可以。。。\n"); return 0; }
補充:typedef能夠提高代碼的跨平臺性與減少代碼書寫的作用,對于它,需要關注以下幾點,
(1)與一般數據類型
(2)與結構體
(3)與#define的區別
(4)與指針中的函數
(5)與const共同
思考:1、函數指針與指針函數:
(1)函數指針本質是函數形式的指針;
(2)指針函數,本質是函數,其返回值是指針,函數還是像普通函數一樣調用;
2、函數指針在C中的地位,我們都知道,C語言主要是一種結構化設計語言,但是,函數指針的使用能夠實現分層設計,使其具有面向對象的特征。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。