函數(shù)的返回值類型必須與函數(shù)體內(nèi)的返回表達(dá)式的類型相匹配。如果類型不匹配,編譯器會(huì)報(bào)錯(cuò)。此外,C 語言中的函數(shù)只能返回一個(gè)值,如果需要返回多個(gè)值,可以使用結(jié)構(gòu)體或指針等方式來實(shí)現(xiàn)。
返回一個(gè)結(jié)構(gòu)體類型的值并將其存儲(chǔ)到一個(gè)結(jié)構(gòu)體類型的變量中。add() 函數(shù)接收兩個(gè) Point 類型的參數(shù),并返回一個(gè) Point 類型的值。在函數(shù)體內(nèi),將兩個(gè)參數(shù)的 x 坐標(biāo)和 y 坐標(biāo)分別相加,得到一個(gè)新的 Point 類型的結(jié)構(gòu)體,然后將這個(gè)結(jié)構(gòu)體作為函數(shù)的返回值返回。在 main() 函數(shù)中,創(chuàng)建兩個(gè) Point 類型的結(jié)構(gòu)體 p1 和 p2,并將它們傳遞給 add() 函數(shù)。然后,使用一個(gè) Point 類型的變量 p3 來存儲(chǔ) add() 函數(shù)的返回值,并打印出 p3 的坐標(biāo)。
create_array() 函數(shù)接收一個(gè)整數(shù) n,然后動(dòng)態(tài)分配了一個(gè) n 個(gè)元素的整型數(shù)組,將數(shù)組中的每個(gè)元素初始化為其下標(biāo)值,最后將指向數(shù)組的指針作為函數(shù)的返回值返回。在 main() 函數(shù)中,調(diào)用 create_array() 函數(shù)并將其返回值指向一個(gè)整型指針 arr。然后,使用一個(gè)循環(huán)遍歷數(shù)組的每個(gè)元素,并打印出其值。最后,釋放數(shù)組所占用的內(nèi)存空間。
在 C 語言中,回調(diào)函數(shù)是指一個(gè)函數(shù)指針,它作為參數(shù)傳遞給另一個(gè)函數(shù),使得被調(diào)用的函數(shù)可以調(diào)用傳遞進(jìn)來的函數(shù)指針來完成一些特定的操作。通常情況下,回調(diào)函數(shù)可以用于事件處理、信號處理、異步操作等方面。
定義了一個(gè)函數(shù)指針類型 callback,它指向一個(gè)沒有返回值,帶有一個(gè)整型參數(shù)的函數(shù)。
然后,定義了一個(gè)名為 apply() 的函數(shù),它接收一個(gè)整型數(shù)組 arr,數(shù)組的長度 n,以及一個(gè)函數(shù)指針 cb。在函數(shù)體內(nèi),使用一個(gè)循環(huán)遍歷數(shù)組中的每個(gè)元素,并調(diào)用傳遞進(jìn)來的函數(shù)指針 cb 來處理每個(gè)元素。
在 main() 函數(shù)中,定義了一個(gè)整型數(shù)組 arr,并調(diào)用 apply() 函數(shù)來處理數(shù)組中的每個(gè)元素。在調(diào)用 apply() 函數(shù)時(shí),將一個(gè)名為 print() 的函數(shù)指針作為參數(shù)傳遞給它,這個(gè)函數(shù)會(huì)將整型參數(shù)打印到標(biāo)準(zhǔn)輸出中。
apply()函數(shù)是一個(gè)通用的函數(shù),它可以接收任意類型的數(shù)組和任意類型的函數(shù)指針。通過傳遞不同的函數(shù)指針,可以實(shí)現(xiàn)不同的操作。這種方式使得代碼的復(fù)用性更好,并且使得代碼更加靈活。
函數(shù)指針是指一個(gè)指向函數(shù)的指針變量,它存儲(chǔ)了函數(shù)的地址,可以用來調(diào)用函數(shù)。函數(shù)指針的定義方式與普通的指針定義方式相似,只是需要在指針類型前面加上函數(shù)的返回類型和參數(shù)列表。
int(*p)(int,int);
定義了一個(gè)名為 p 的指向函數(shù)的指針變量,這個(gè)函數(shù)返回值類型是 int,有兩個(gè)整型參數(shù)。這個(gè)函數(shù)指針可以指向一個(gè)具有相同返回值類型和參數(shù)列表的函數(shù)。
打完收工
定義了兩個(gè)函數(shù) add() 和 subtract(),分別實(shí)現(xiàn)了加法和減法操作。然后,定義了一個(gè)名為 p 的函數(shù)指針,它可以指向一個(gè)帶有兩個(gè)整型參數(shù)并返回整型的函數(shù)。在 main() 函數(shù)中,將 p 指向 add() 函數(shù),并調(diào)用它來完成加法操作,然后再將 p 指向 subtract() 函數(shù),并調(diào)用它來完成減法操作。
函數(shù)里面的參數(shù)可以傳遞一個(gè)指針進(jìn)來。指針作為參數(shù)傳遞進(jìn)函數(shù)時(shí),實(shí)際上傳遞的是指針?biāo)赶虻膬?nèi)存地址,函數(shù)可以通過指針來訪問、修改指針?biāo)赶虻膬?nèi)存中的數(shù)據(jù)。
定義了一個(gè)名為 swap() 的函數(shù),它有兩個(gè)參數(shù),都是指向整型變量的指針。在 main() 函數(shù)中,定義了兩個(gè)整型變量 x 和 y,并輸出它們的初始值。然后,將 x 和 y 的地址傳遞給 swap() 函數(shù),讓它交換這兩個(gè)變量的值。最后,再次輸出 x 和 y 的值,發(fā)現(xiàn)它們的值已經(jīng)被成功交換了。
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136841 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4331瀏覽量
62622 -
指針
+關(guān)注
關(guān)注
1文章
480瀏覽量
70564 -
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49133
原文標(biāo)題:函數(shù)的返回值指向一個(gè)指針
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論