c語言規(guī)定函數(shù)回值的類型 c語言規(guī)定函數(shù)返回值的類型

C語言中返回值類型是什么?

你說的是函數(shù)的返回者吧

秭歸網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。

函數(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ù)值,因此可定義為:

void s(int n)

{ ……

}

一旦函數(shù)被定義為空類型后,就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義s為空類型后,在主函數(shù)中寫下述語句

sum=s(n);

就是錯誤的。

為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數(shù)都應定義為空類型。

C語言規(guī)定,函數(shù)返回值的類型由什么決定?

c語言規(guī)定,函數(shù)返回值的類型是由函數(shù)首部定義的類型決定。函數(shù)返回值應與首部定義的類型一致,如若不一致,則自動將返回值強制轉(zhuǎn)換為函數(shù)首部定義的類型。沒有定義類型時默認為int型。

也就是說你的函數(shù)是什么類型,返回值就是什么類型。

比如:

函數(shù)定義 int fun(int a,char b)

返回值就是整型

函數(shù)定義 int *fun(int a)

返回值就是基類型為整型的指針

函數(shù)定義 void fun(int a)

無返回值

擴展資料

函數(shù)可以有返回值,只要 return 就可以給出一個,不過常常不用它,有兩個原因:

1、C/C++里返回值是復制出去的,而對于大的對象,復制的代價很高;

2、有些對象是不能復制的,至少編譯器不知道怎么復制,比如數(shù)組。

于是有了下面這樣的函數(shù):

bool GetObj(ObjType obj);

bool Encode(const char* src, char* dest);

用一個參數(shù)來代替返回值,而返回值只是指示函數(shù)執(zhí)行是否成功。

返回一個大對象是困難的,但這個困難存在于 C 程序中,而不是 C++ 程序中。 C 函數(shù)里較少通過返回一個指針來返回對象,因為:

1、如果指針指向棧變量,毫無疑問,要么不用這個返回值,要么是一個錯誤;

2、如果指針指向堆變量,需要用這個函數(shù)的程序員會好好的看文檔且足夠細心會調(diào)用 free,要么就是內(nèi)存泄漏;

3、如果指針指向 static 變量,那么用這個函數(shù)的程序員牢牢記住“下次調(diào)用這個函數(shù)以后,上次的返回值也會跟著變”。

在C++里直接返回裸指針的話,情況并不會有什么起色,不過 C++ 有智能指針的,通常它們指向堆變量,占用的空間和裸指針一樣大??紤]前面第一個函數(shù),寫成:

std::auto_ptrObjType GetObj();

返回值如果不要,作為臨時變量,會立即被析構(gòu),返回的對象被釋放;如果需要,就得賦值給另一個智能指針??傊挥贸绦騿T記得,編譯器會保證這個對象的釋放。

考慮第二個函數(shù),稍微有一點麻煩,因為 auto_ptr 是不能用來持有數(shù)組的,不過,在C++的世界里,std::string 幾乎總是比 char* 好用:

std::auto_ptrstd::string Encode(const char* src);

最后考慮最麻煩的情況:

bool AssembleObjList(ObjType objList[], size_t length);

決定C語言中函數(shù)返回值類型的是【 】

決定C語言中函數(shù)返回值類型的是定義函數(shù)時在函數(shù)首部所指定的類型。

在C語言中,一個標準的函數(shù)定義語句塊必須包含函數(shù)返回值的類型標識符、函數(shù)名、形參類型及數(shù)量、函數(shù)體、返回值表達式。如果函數(shù)返回值類型為

void

(即無返回值)。

函數(shù)定義示例(其中int是函數(shù)返回值類型):

int

fun(int

a,

int

b){

return

ab

?

a

:

b;

}

擴展資料

C語言函數(shù)類型種類舉例介紹:

1、void

空類型,表示該函數(shù)無返回值;

2、int

整形,表示該函數(shù)返回int整形數(shù)值;

3、double

雙精度,函數(shù)返回雙精度數(shù)值;

4、char

字符串,函數(shù)返回字符串;

5、long

長整型,函數(shù)返回長整型數(shù)值;

新聞標題:c語言規(guī)定函數(shù)回值的類型 c語言規(guī)定函數(shù)返回值的類型
地址分享:http://muchs.cn/article26/hjsgjg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、定制開發(fā)網(wǎng)站排名、自適應網(wǎng)站、企業(yè)建站、標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司