0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言中return的各種用法

倩倩 ? 來源:?jiǎn)纹瑱C(jī)與嵌入式 ? 作者:?jiǎn)纹瑱C(jī)與嵌入式 ? 2022-08-13 10:47 ? 次閱讀

按初學(xué)的理解,return的任務(wù)就是返回對(duì)應(yīng)的參數(shù),在外層函數(shù)中對(duì)這個(gè)參數(shù)做進(jìn)一步處理。

實(shí)際上return的用法不只這些。

為調(diào)用的函數(shù)返回參數(shù)值

此類應(yīng)用最為普遍,通常是在一個(gè)具有返回值的函數(shù)中,返回一個(gè)參數(shù)值,這個(gè)返回的參數(shù)可以是一個(gè)數(shù)、表達(dá)式。通常情況下,返回值是一個(gè)值,如果想返回多個(gè)值可以參考以下三點(diǎn):

設(shè)置全局變量,全局變量是定義在函數(shù)外的一個(gè)變量,其不屬于任何一個(gè)函數(shù),所以,雖然在調(diào)用函數(shù)中return返回一個(gè)值,但可以將其余的返回值賦值給全局變量,這樣就做到了返回多個(gè)值的效果。

使用數(shù)組名或指針作為函數(shù)形參,返回的是一個(gè)地址,主函數(shù)可以根據(jù)這個(gè)地址找到多個(gè),要返回的數(shù)據(jù)。

使用結(jié)構(gòu)體作為函數(shù)形參,結(jié)構(gòu)體中可以包含多種形式的變量,以結(jié)構(gòu)體作為形參相當(dāng)于將所有返回值打包在一起,一次返回。

提前結(jié)束函數(shù)

由于return具有把程序流程從被調(diào)函數(shù)轉(zhuǎn)向主調(diào)函數(shù)的作用,所以時(shí)候也會(huì)用來終止函數(shù)的調(diào)用,也就是說return是提前結(jié)束函數(shù)的唯一方法。因?yàn)楹瘮?shù)一遇到return就立即返回,return后面的程序都不再執(zhí)行,所以一個(gè)函數(shù)中可以有多個(gè)return,但只會(huì)執(zhí)行一個(gè)。return后面可以跟一個(gè)參數(shù)作為返回值,也可以不跟參數(shù),僅僅代表結(jié)束此函數(shù)。

返回一個(gè)函數(shù)

如果return后面跟的是一個(gè)函數(shù)的話,就意味著,跳出此調(diào)用函數(shù),并且跳出后執(zhí)行return后的函數(shù),然后繼續(xù)在主函數(shù)中執(zhí)行程序。

有時(shí)利用return返回一個(gè)操作,比如在程序調(diào)試中出錯(cuò)后,需要return跳出錯(cuò)誤函數(shù)并向串口打印出錯(cuò)誤的原因,這個(gè)時(shí)候return后面的函數(shù)就用來向串口打印錯(cuò)誤原因的。相關(guān)文章推薦:學(xué)習(xí)STM32單片機(jī),繞不開的串口。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7605

    瀏覽量

    136934
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4332

    瀏覽量

    62666
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28388

原文標(biāo)題:C語言中return的各種用法

文章出處:【微信號(hào):?jiǎn)纹瑱C(jī)與嵌入式,微信公眾號(hào):?jiǎn)纹瑱C(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放

    C語言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放?每次都要手動(dòng) free 太麻煩,也容易忘記。 學(xué)過 C++ 的同學(xué),應(yīng)該首先能想到智能指針。 但是這是C語言
    的頭像 發(fā)表于 11-27 09:33 ?121次閱讀

    C語言中的頭文件能不能重復(fù)包含

    C語言中的頭文件能不能重復(fù)包含? 比如代碼寫成這樣,stdio.h 連續(xù)包含了兩次。 #include #include int main(){ printf("helloworld
    的頭像 發(fā)表于 11-26 17:19 ?176次閱讀

    C語言中的socket編程基礎(chǔ)

    Socket編程簡(jiǎn)介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?337次閱讀

    C語言中最常見的宏定義寫法

    如果讓你用C語言寫個(gè)宏定義,我相信大部分同學(xué)順手就能寫出define。
    的頭像 發(fā)表于 10-28 11:12 ?288次閱讀

    c語言中從左到右結(jié)合怎么看

    C語言中,操作符的結(jié)合性(Associativity)是指當(dāng)操作符在表達(dá)式中連續(xù)出現(xiàn)時(shí),它們?nèi)绾闻c操作數(shù)結(jié)合的順序。對(duì)于大多數(shù)二元操作符(即需要兩個(gè)操作數(shù)的操作符),C語言遵循兩種基
    的頭像 發(fā)表于 08-20 11:42 ?903次閱讀

    嵌入式系統(tǒng)中C語言結(jié)構(gòu)體的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語言中的數(shù)組只能允許程序員定義存儲(chǔ)相同類型數(shù)據(jù)。但是結(jié)構(gòu)是C語言編程中允許您存儲(chǔ)不同數(shù)據(jù)類型的數(shù)據(jù)。
    發(fā)表于 03-12 14:29 ?506次閱讀
    嵌入式系統(tǒng)中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結(jié)構(gòu)體的基礎(chǔ)實(shí)現(xiàn)與應(yīng)用

    C語言中的typedef的應(yīng)用

    C 語言提供了 typedef 關(guān)鍵字,您可以使用它來為類型取一個(gè)新的名字。下面的實(shí)例為單字節(jié)數(shù)字定義了一個(gè)術(shù)語 BYTE。
    發(fā)表于 03-06 11:34 ?389次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的typedef的應(yīng)用

    C語言#define的應(yīng)用

    C/C++ 編程語言中,當(dāng)程序被編譯時(shí),被發(fā)送到編譯器,編譯器將程序轉(zhuǎn)換為機(jī)器語言,然后完成編譯并執(zhí)行該程序。預(yù)處理器也稱為宏預(yù)處理器。
    發(fā)表于 03-06 11:29 ?385次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應(yīng)用

    C語言的指針用法

    C語言編程中善用指針可以簡(jiǎn)化一些任務(wù)的處理,而對(duì)于一些任務(wù)(比如動(dòng)態(tài)內(nèi)存分配),必須要有指針才行的。也就是說精通C指針編程是很有必要的,幫助你成為一名優(yōu)秀的Cer。
    發(fā)表于 03-05 14:22 ?359次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的指針<b class='flag-5'>用法</b>

    介紹C語言中錯(cuò)誤處理和異常處理的一些常用的方法和策略

    C語言是一種低級(jí)的、靜態(tài)的、結(jié)構(gòu)化的編程語言,它沒有提供像C++或Java等高級(jí)語言中的異常處理機(jī)制,例如try-catch-finally
    的頭像 發(fā)表于 02-28 14:25 ?631次閱讀

    C語言中的可變參數(shù)介紹

    C 語言為這種情況提供了一個(gè)解決方案,它允許您定義一個(gè)函數(shù),能根據(jù)具體的需求接受可變數(shù)量的參數(shù)
    發(fā)表于 02-28 14:00 ?319次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的可變參數(shù)介紹

    C語言中的錯(cuò)誤處理機(jī)制解析

    C 語言不提供對(duì)錯(cuò)誤處理的直接支持,但是作為一種系統(tǒng)編程語言,它以返回值的形式允許您訪問底層數(shù)據(jù)。
    的頭像 發(fā)表于 02-26 11:19 ?519次閱讀

    C語言中的動(dòng)態(tài)內(nèi)存管理講解

    本章將講解 C 中的動(dòng)態(tài)內(nèi)存管理。C 語言為內(nèi)存的分配和管理提供了幾個(gè)函數(shù)。這些函數(shù)可以在 頭文件中找到。
    的頭像 發(fā)表于 02-23 14:03 ?398次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的動(dòng)態(tài)內(nèi)存管理講解

    枚舉有多大?c語言枚舉end的作用是什么?

    枚舉有多大?c語言枚舉end的作用是什么? 枚舉在C語言中是一種常見的數(shù)據(jù)類型,用于定義一組相互關(guān)聯(lián)的常量或者變量。它通常用于表示一系列可能的取值,使得程序更加易讀和易維護(hù)。在
    的頭像 發(fā)表于 01-19 14:19 ?601次閱讀

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析? 在C語言中,訪問權(quán)限沖突異常通
    的頭像 發(fā)表于 01-12 16:03 ?5772次閱讀