c語言中帶返回值的函數(shù)怎么用 C語言中函數(shù)返回值的類型?
C語言中函數(shù)返回值的類型?你說的是函數(shù)的返回者吧函數(shù)的值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值。對函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:1)
C語言中函數(shù)返回值的類型?
你說的是函數(shù)的返回者吧
函數(shù)的值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值。對函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:
1)函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。
return語句的一般形式為:
return表達式;
或者為:
return(表達式);
該語句的功能是計算表達式的值,并返回給主調(diào)函數(shù)。在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。
2)函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應保持一致。如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉(zhuǎn)換。
3)如函數(shù)值為整型,在函數(shù)定義時可以省去類型說明。
4)不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為“void”。如例8.2中函數(shù)s并不向主函數(shù)返函數(shù)值,因此可定義為:
voids(intn)
{……
}
一旦函數(shù)被定義為空類型后,就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義s為空類型后,在主函數(shù)中寫下述語句
sums(n)
就是錯誤的。
為了使程序有良好的可讀性并減少出錯,凡不要求返回值的函數(shù)都應定義為空類型。
c語言中函數(shù)返回值可以是數(shù)組、字符串和結(jié)構(gòu)體嗎?
//語法編碼規(guī)則的角度看ANSIC語言標準,明確規(guī)定數(shù)組類型和函數(shù)類型不可以做為返回值。解決這種返回值的方法是通過指針來間接返回,即使用數(shù)組指針和函數(shù)指針。這可以做為c語言引入指針的另一個理由。結(jié)構(gòu)體類型可以做為返回值,我猜測C語言設計者當時引入struct結(jié)構(gòu)體的概念,目的是為了增加一種建立C語言新類型的機制,換句話說它希望通過struct建立的類型,像內(nèi)置的intfloat類型一樣使用方便。//從匯編角度來看有兩種返回值方法,第一種是直接返回到繼電器的,第二種是類似于結(jié)構(gòu)體返回值的那樣建立臨時存儲區(qū)的返回比如int返回值類型、指針返回值類型,在ia32平臺上都是直接返回到eax觸發(fā)器不管是膠原蛋白還是diff,對于像float類型的浮點返回值類型,在ia32平臺,往往借助于fpu浮點運算器模塊中的傳感器存儲于棧中,第三類就是像struct結(jié)構(gòu)體返回值,它需要建立臨時對象,對于c語言來說引入一個臨時內(nèi)在區(qū)域是問題不大的,但是對于c這個有時候是致命的。我是菜鳥,希望能幫到你,觀樓主英俊瀟灑,風流倜儻,必當世豪杰,誠邀加入0x30淘寶,共商義舉,建不世之功!