不良的生活習(xí)慣讓你多疾病(不良生活方式引起的疾病) 蘋果手機(jī)怎么換輸入法壁紙(蘋果手機(jī)怎么換輸入法) 推薦幾個(gè)學(xué)習(xí)英語好用的軟件 堡壘之夜在哪下載?(pc版堡壘之夜在哪下載) 山東省電力公司領(lǐng)導(dǎo)(山東省電力公司) 酶文化之生物復(fù)合酶(酶生物化學(xué)) 如何用微信查詢北京地鐵實(shí)時(shí)滿載率(北京地鐵客運(yùn)量實(shí)時(shí)) 身體發(fā)膚受之父母不敢毀傷下一句(身體發(fā)膚受之父母) 如何去掉dedecms自帶廣告以及Power by dedecms 腰椎結(jié)核怎么護(hù)理?(腰椎結(jié)核怎么護(hù)理好) 2020年內(nèi)蒙古師范大學(xué)文科錄取分?jǐn)?shù)線多少分?(內(nèi)蒙古師范大學(xué)文科二本有什么專業(yè)) 獨(dú)角仙幼蟲怎么養(yǎng)(獨(dú)角仙幼蟲怎么養(yǎng) 新手視頻) ii型糖尿病能徹底治愈嗎(ii型糖尿?。?/a> 怎么用話費(fèi)充值Q幣(qq怎么用話費(fèi)充值q幣) 頭發(fā)厚重適合什么發(fā)型(頭發(fā)多的女生適合什么發(fā)型) 戴爾筆記本電腦一開機(jī)就藍(lán)屏(戴爾筆記本電腦一開機(jī)就藍(lán)屏怎么搞) 畫素描如何避免匠氣(如何避免繪畫匠氣) 1月28星座(1月28日是什么星座) PPT怎么講自己做的模板導(dǎo)入自己做好的PPT里面(如何在已經(jīng)做好的ppt里導(dǎo)入模板) 如何寫好作文(如何寫好作文的方法和技巧) 混凝土比例1:2:3一方需要多少噸沙子(混凝土比例) 涼拌黃花菜的做法(涼拌黃花菜的做法大全) 教師節(jié)賀卡圖片簡筆畫(教師節(jié)賀卡圖片簡筆畫圖片) 《平凡的世界》讀后感(求 平凡的世界 讀后感 800字) 云頂之弈莫甘娜帶什么裝備(云頂之弈莫甘娜帶什么裝備最好) 《反壟斷法》規(guī)定了幾種壟斷形式 如何處罰?(《反壟斷法》規(guī)定了幾種壟斷形式,如何處罰決定) 食品安全歌謠20字(食品安全歌謠) 如何知道電視機(jī)尺寸的大小 一寸是多少厘米?(如何知道電視機(jī)尺寸的大小,一寸是多少厘米寬) 傳統(tǒng)小吃“蛤蟆吐蜜"的餡料是什么?(傳統(tǒng)小吃\) 陪玩多少錢一個(gè)小時(shí)(那女孩對我說說我是一個(gè)小偷) 蘋果手機(jī)微信網(wǎng)絡(luò)出錯(cuò)1004怎么辦 如何解決(蘋果手機(jī)注冊微信顯示網(wǎng)絡(luò)出錯(cuò)1004) 動物之森如何讓小動物搬家(動物之森如何讓小動物搬家回家) 驅(qū)動精靈如何安裝打印機(jī)驅(qū)動程序(如何安裝打印機(jī)驅(qū)動程序) AI最常用的工具鋼筆工具(ai鋼筆工具組有哪些工具) 如何選擇比較靠譜的理財(cái)平臺(有哪些可靠的理財(cái)平臺) 對學(xué)生的評價(jià)要多選題(對學(xué)生的評價(jià)) Excel公式:[1]使用rank函數(shù)實(shí)現(xiàn)去重復(fù)排序(excel中rank排序有重復(fù)) 兒童患了齲齒要怎么辦(兒童患有齲齒怎么辦) APP風(fēng)險(xiǎn)漏洞檢測怎么做? 在線檢測的詳細(xì)步驟(手機(jī)app漏洞檢測工具下載) U2外拍燈教程(u2攝影燈使用教程) 樸蔡琳老公(樸蔡琳) 王者榮耀如何設(shè)置不卡不發(fā)熱(王者榮耀怎么設(shè)置不卡不發(fā)熱) 樂趣文字聊天室網(wǎng)站(文字聊天室網(wǎng)站) 如何在kindle上買書?(怎樣在kindleapp上買書) 電話英語是啥(電話英文是什么) 英雄聯(lián)盟分辨率設(shè)置(英雄聯(lián)盟分辨率設(shè)置錯(cuò)了怎么調(diào)回去) 三輪滑板車怎么玩?(三輪滑板車怎么玩技巧) 快樂星球冰檸檬張兆藝(張兆藝) 待處理財(cái)產(chǎn)損益的會計(jì)分錄(待處理財(cái)產(chǎn)損益的會計(jì)分錄怎么做) 怎樣挽回破裂的婚姻(怎樣挽回破裂的婚姻老公)
您的位置:首頁 >綜合精選 >

函數(shù)指針和指針函數(shù)用法和區(qū)別(函數(shù)指針和指針函數(shù)有啥區(qū)別)

導(dǎo)讀 關(guān)于函數(shù)指針和指針函數(shù)用法和區(qū)別,函數(shù)指針和指針函數(shù)有啥區(qū)別這個(gè)問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一

關(guān)于函數(shù)指針和指針函數(shù)用法和區(qū)別,函數(shù)指針和指針函數(shù)有啥區(qū)別這個(gè)問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!

1、函數(shù)指針和指針函數(shù)的區(qū)別:一、【函數(shù)指針】 在程序運(yùn)行中,函數(shù)代碼是程序的算法指令部分,它們和數(shù)組一樣也占用存儲空間,都有相應(yīng)的地址。

2、可以使用指針變量指向數(shù)組的首地址,也可以使用指針變量指向函數(shù)代碼的首地址,指向函數(shù)代碼首地址的指針變量稱為函數(shù)指針。

3、 函數(shù)指針定義 函數(shù)類型(*指針變量名)(形參列表); “函數(shù)類型”說明函數(shù)的返回類型,由于“()”的優(yōu)先級高于“*”,所以指針變量名外的括號必不可少,后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。

4、 例如: int (*f)(int x); double (*ptr)(double x); 在定義函數(shù)指針時(shí)請注意: 函數(shù)指針和它指向的函數(shù)的參數(shù)個(gè)數(shù)和類型都應(yīng)該是—致的; 函數(shù)指針的類型和函數(shù)的返回值類型也必須是一致的。

5、 2、函數(shù)指針的賦值 函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時(shí),直接將函數(shù)指針指向函數(shù)名就行了。

6、 例如, int func(int x); /* 聲明一個(gè)函數(shù) */ int (*f) (int x); /* 聲明一個(gè)函數(shù)指針 */ f=func; /* 將func函數(shù)的首地址賦給指針f */ 賦值時(shí)函數(shù)func不帶括號,也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。

7、 3、通過函數(shù)指針調(diào)用函數(shù) 函數(shù)指針是通過函數(shù)名及有關(guān)參數(shù)進(jìn)行調(diào)用的。

8、 與其他指針變量相類似,如果指針變量pi是指向某整型變量i的指針,則*p等于它所指的變量i;如果pf是指向某浮點(diǎn)型變量f的指針,則*pf就等價(jià)于它所指的變量f。

9、同樣地,*f是指向函數(shù)func(x)的指針,則*f就代表它所指向的函數(shù)func。

10、所以在執(zhí)行了f=func;之后,(*f)和func代表同一函數(shù)。

11、 由于函數(shù)指針指向存儲區(qū)中的某個(gè)函數(shù),因此可以通過函數(shù)指針調(diào)用相應(yīng)的函數(shù)。

12、現(xiàn)在我們就討論如何用函數(shù)指針調(diào)用函數(shù),它應(yīng)執(zhí)行下面三步: 首先,要說明函數(shù)指針變量。

13、例如:int (*f)(int x); 其次,要對函數(shù)指針變量賦值。

14、 例如: f=func; (func(x)必須先要有定義) 最后,要用 (*指針變量)(參數(shù)表);調(diào)用函數(shù)。

15、 例如: (*f)(x);(x必須先賦值) 【例】任意輸入n個(gè)數(shù),找出其中最大數(shù),并且輸出最大數(shù)值。

16、 main() { int f(); int i,a,b; int (*p)(); /* 定義函數(shù)指針 */ scanf("%d",&a); p=f; /* 給函數(shù)指針p賦值,使它指向函數(shù)f */ for(i=1;i<9;i++) { scanf("%d",&b); a=(*p)(a,b); /* 通過指針p調(diào)用函數(shù)f */ } printf("The Max Number is:%d",a) } f(int x,int y) { int z; z=(x>y)?x:y; return(z); } 運(yùn)行結(jié)果為: 343 -45 4389 4235 1 -534 988 555 789↙ The Max Number is:4389 二、【指針函數(shù)】 一個(gè)函數(shù)不僅可以帶回一個(gè)整型數(shù)據(jù)的值,字符類型值和實(shí)型類型的值,還可以帶回指針類型的數(shù)據(jù),使其指向某個(gè)地址單元。

17、 返回指針的函數(shù),一般定義格式為: 類型標(biāo)識符 *函數(shù)名(參數(shù)表) int *f(x,y); 其中x,y是形式參數(shù),f是函數(shù)名,調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針。

18、f(x,y)是函數(shù),其值是指針。

19、 如:char *ch();表示的就是一個(gè)返回字符型指針的函數(shù),請看下面的例題: 【例】將字符串1(str1)復(fù)制到字符串2(str2),并輸出字符串2. #include "stdio.h" main() { char *ch(char *,char *); char str1[]="I am glad to meet you!"; char str2[]="Welcom to study C!"; printf("%s",ch(str1,str2)); } char *ch(char *str1,char *str2) { int i; char *p; p=str2 if(*str2==NULL) exit(-1); do { *str2=*str1; str1++; str2++; }while(*str1!=NULL); return(p); } 通過分析可得: 函數(shù)指針是一個(gè)指向函數(shù)的指針,而指針函數(shù)只是說明他是一個(gè)返回值為指針的函數(shù), 函數(shù)指針可以用來指向一個(gè)函數(shù)。

本文分享完畢,希望對大家有所幫助。

標(biāo)簽:

免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章