那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言中函數的返回值指向一個指針

云深之無跡 ? 來源:云深之無跡 ? 2023-04-26 11:01 ? 次閱讀

函數的返回值類型必須與函數體內的返回表達式的類型相匹配。如果類型不匹配,編譯器會報錯。此外,C 語言中的函數只能返回一個值,如果需要返回多個值,可以使用結構體或指針等方式來實現。

f3b55492-e351-11ed-ab56-dac502259ad0.png

返回一個結構體類型的值并將其存儲到一個結構體類型的變量中。add() 函數接收兩個 Point 類型的參數,并返回一個 Point 類型的值。在函數體內,將兩個參數的 x 坐標和 y 坐標分別相加,得到一個新的 Point 類型的結構體,然后將這個結構體作為函數的返回值返回。在 main() 函數中,創建兩個 Point 類型的結構體 p1 和 p2,并將它們傳遞給 add() 函數。然后,使用一個 Point 類型的變量 p3 來存儲 add() 函數的返回值,并打印出 p3 的坐標。

f3d8c29c-e351-11ed-ab56-dac502259ad0.png

create_array() 函數接收一個整數 n,然后動態分配了一個 n 個元素的整型數組,將數組中的每個元素初始化為其下標值,最后將指向數組的指針作為函數的返回值返回。在 main() 函數中,調用 create_array() 函數并將其返回值指向一個整型指針 arr。然后,使用一個循環遍歷數組的每個元素,并打印出其值。最后,釋放數組所占用的內存空間。

在 C 語言中,回調函數是指一個函數指針,它作為參數傳遞給另一個函數,使得被調用的函數可以調用傳遞進來的函數指針來完成一些特定的操作。通常情況下,回調函數可以用于事件處理、信號處理、異步操作等方面。

f3f1da2a-e351-11ed-ab56-dac502259ad0.png

定義了一個函數指針類型 callback,它指向一個沒有返回值,帶有一個整型參數的函數。

然后,定義了一個名為 apply() 的函數,它接收一個整型數組 arr,數組的長度 n,以及一個函數指針 cb。在函數體內,使用一個循環遍歷數組中的每個元素,并調用傳遞進來的函數指針 cb 來處理每個元素。

在 main() 函數中,定義了一個整型數組 arr,并調用 apply() 函數來處理數組中的每個元素。在調用 apply() 函數時,將一個名為 print() 的函數指針作為參數傳遞給它,這個函數會將整型參數打印到標準輸出中。

apply()函數是一個通用的函數,它可以接收任意類型的數組和任意類型的函數指針。通過傳遞不同的函數指針,可以實現不同的操作。這種方式使得代碼的復用性更好,并且使得代碼更加靈活。

函數指針是指一個指向函數的指針變量,它存儲了函數的地址,可以用來調用函數。函數指針的定義方式與普通的指針定義方式相似,只是需要在指針類型前面加上函數的返回類型和參數列表。

int(*p)(int,int);

定義了一個名為 p 的指向函數的指針變量,這個函數返回值類型是 int,有兩個整型參數。這個函數指針可以指向一個具有相同返回值類型和參數列表的函數。

f414f08c-e351-11ed-ab56-dac502259ad0.png

打完收工

定義了兩個函數 add() 和 subtract(),分別實現了加法和減法操作。然后,定義了一個名為 p 的函數指針,它可以指向一個帶有兩個整型參數并返回整型的函數。在 main() 函數中,將 p 指向 add() 函數,并調用它來完成加法操作,然后再將 p 指向 subtract() 函數,并調用它來完成減法操作。

函數里面的參數可以傳遞一個指針進來。指針作為參數傳遞進函數時,實際上傳遞的是指針所指向的內存地址,函數可以通過指針來訪問、修改指針所指向的內存中的數據。

f42f6f20-e351-11ed-ab56-dac502259ad0.png

定義了一個名為 swap() 的函數,它有兩個參數,都是指向整型變量的指針。在 main() 函數中,定義了兩個整型變量 x 和 y,并輸出它們的初始值。然后,將 x 和 y 的地址傳遞給 swap() 函數,讓它交換這兩個變量的值。最后,再次輸出 x 和 y 的值,發現它們的值已經被成功交換了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137702
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62968
  • 指針
    +關注

    關注

    1

    文章

    481

    瀏覽量

    70608
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49283

原文標題:函數的返回值指向一個指針

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言如何處理函數返回值

    當你在函數的最后寫上 return 0 的時候,它是如何返回給調用函數的? 比如 test 函數,為了待會更好的看懂匯編代碼,我寫成了 return 1234。 處理
    的頭像 發表于 01-16 09:21 ?81次閱讀

    如何把兩個數據返回給調用函數

    函數的處理結果包含兩個數據,如何把兩個數據返回給調用函數? 第種,把兩個數據封裝成結構體,
    的頭像 發表于 01-08 10:15 ?98次閱讀

    EE-128:C語言中的DSP:從C調用匯編類成員函數

    電子發燒友網站提供《EE-128:C語言中的DSP:從C調用匯編類成員函數.pdf》資料免費下載
    發表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的DSP:從<b class='flag-5'>C</b>調用匯編類成員<b class='flag-5'>函數</b>

    同樣是函數,在CC++中有什么區別

    同樣是函數,在 CC++ 中有什么區別? 第一個返回值C
    的頭像 發表于 11-29 10:25 ?429次閱讀

    C語言經典筆試題集錦

    有以下程序,如果 x 等于 254,則函數返回值是多少?
    的頭像 發表于 11-09 11:39 ?276次閱讀

    C語言中的socket編程基礎

    。 Socket編程的基本步驟 在C語言中,socket編程的基本步驟如下: 步驟1:創建socket 步驟2:綁定socket到地址和端口 步驟3:監聽連接請求 步驟4:接受連接
    的頭像 發表于 11-01 16:51 ?464次閱讀

    C語言指針運算符詳解

    C語言中,當你有指向數組中某個元素的指針時,你可以對該
    的頭像 發表于 10-30 11:16 ?306次閱讀

    HTTP相關返回值異常如何解決(上篇)

    ? 今天我們講講HTTP相關返回值異常如何解決(實例持續更新中) HTTP介紹 HTTP(超文本傳輸協議,Hypertext Transfer Protocol)是用于在網絡上進行數據交換的應用層
    的頭像 發表于 10-20 16:40 ?435次閱讀
    HTTP相關<b class='flag-5'>返回值</b>異常如何解決(上篇)

    C語言指針詳細解析

    可以對數據本身,也可以對存儲數據的變量地址進行操作。 指針占據存儲空間的實體在這段空間起始位置的相對距離。在
    發表于 09-14 10:03

    面試常考+1:函數指針指針函數、數組指針指針數組

    函數是指返回值指針函數。語法:返回值類型*函數名(參數列表)。示例代碼:#include#i
    的頭像 發表于 08-10 08:11 ?988次閱讀
    面試常考+1:<b class='flag-5'>函數</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>函數</b>、數組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數組

    面試中的高頻問題:指針函數函數指針,你能完美應對嗎?

    直覺得C語言較其他語言最偉大的地方就是C語言中指針
    的頭像 發表于 06-22 08:11 ?1840次閱讀
    面試中的高頻問題:<b class='flag-5'>指針</b><b class='flag-5'>函數</b>與<b class='flag-5'>函數</b><b class='flag-5'>指針</b>,你能完美應對嗎?

    提高C代碼可讀性的編寫技巧與策略

    指針C 語言的靈魂,是 C 比其他語言更靈活,更強大的地方。所以學習 C
    發表于 04-23 18:25 ?576次閱讀

    C語言函數指針六大應用場景詳解

    函數指針種非常強大的編程工具,它可以讓我們以更加靈活的方式編寫程序。在本文中,我們將介紹 6 函數
    的頭像 發表于 04-23 18:19 ?969次閱讀

    函數指針與回調函數的應用實例

    通常我們說的指針變量是指向整型、字符型或數組等變量,而函數指針
    的頭像 發表于 03-07 11:13 ?435次閱讀
    <b class='flag-5'>函數</b><b class='flag-5'>指針</b>與回調<b class='flag-5'>函數</b>的應用實例

    C語言中的錯誤處理機制解析

    C 語言不提供對錯誤處理的直接支持,但是作為種系統編程語言,它以返回值的形式允許您訪問底層數據。
    的頭像 發表于 02-26 11:19 ?559次閱讀
    金海岸百家乐官网的玩法技巧和规则 | 百家乐官网在线怎么玩| 百家乐制胜法宝| 澳门百家乐官网是骗人的| 大发888掉线| 百家乐官网游戏开户网址| 百家乐官网玩法及细则| 大发888娱乐场骗局| 网络百家乐破解器| 英皇百家乐官网的玩法技巧和规则| 铜川市| 百家乐龙虎| 巴厘岛百家乐官网的玩法技巧和规则| 网上百家乐官网的技巧| 海王星娱乐网| 大发888真钱娱乐| 百家乐出千的高科技| 免费百家乐官网缩水软件| 百家乐官网怎么样投注| 南投市| 威尼斯人娱乐平台官网| 百家乐群sun811| 百家乐庄家赢钱方法| 百家乐官网筹码皇冠| 百家乐官网智能系统| 玩百家乐官网保时捷娱乐城| 上饶县| 碧桂园太阳城二手房| 百家乐赢钱| 百家乐代理在线游戏可信吗网上哪家平台信誉好安全 | 百家乐龙虎规则| 百家乐官网庄闲和概率| 长宁县| 百家乐代理合作| 大众百家乐的玩法技巧和规则 | 星子县| 英皇百家乐的玩法技巧和规则| 百家乐怎么下注能赢| 百家乐的连庄连闲| 百家乐假在哪里| 百家乐下注所有组合|