c語言的函數的默認的返回值是int類型的,如果沒有定義返回類型,則返回類型就是int
成都創新互聯長期為上1000家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為錦屏企業提供專業的做網站、成都網站制作,錦屏網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發。
只有定義了其它的類型,例如float
add()才是float型的,括號里面參數是什么不影響返回類型
決定C語言中函數返回值類型的是定義函數時在函數首部所指定的類型。
在C語言中,一個標準的函數定義語句塊必須包含函數返回值的類型標識符、函數名、形參類型及數量、函數體、返回值表達式。如果函數返回值類型為
void
(即無返回值)。
函數定義示例(其中int是函數返回值類型):
int
fun(int
a,
int
b){
return
ab
?
a
:
b;
}
擴展資料
C語言函數類型種類舉例介紹:
1、void
空類型,表示該函數無返回值;
2、int
整形,表示該函數返回int整形數值;
3、double
雙精度,函數返回雙精度數值;
4、char
字符串,函數返回字符串;
5、long
長整型,函數返回長整型數值;
函數的返回值通過return語句來執行,即return后的變量或表達式的值,就為該函數的返回值(你可以根據需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
a;(a的類型,你在函數體里定義的是int
a;但根據需要,你要的是一個float型的返回值),于是,這樣定義一個函數:
float
函數名(參數列表)
{
int
a;
函數體;
……
return
a;
}
這樣,返回值a就變成了float型。
c語言規定,函數返回值的類型是由函數首部定義的類型決定。函數返回值應與首部定義的類型一致,如若不一致,則自動將返回值強制轉換為函數首部定義的類型。沒有定義類型時默認為int型。
也就是說你的函數是什么類型,返回值就是什么類型。
比如:
函數定義 int fun(int a,char b)
返回值就是整型
函數定義 int *fun(int a)
返回值就是基類型為整型的指針
函數定義 void fun(int a)
無返回值
擴展資料
函數可以有返回值,只要 return 就可以給出一個,不過常常不用它,有兩個原因:
1、C/C++里返回值是復制出去的,而對于大的對象,復制的代價很高;
2、有些對象是不能復制的,至少編譯器不知道怎么復制,比如數組。
于是有了下面這樣的函數:
bool GetObj(ObjType obj);
bool Encode(const char* src, char* dest);
用一個參數來代替返回值,而返回值只是指示函數執行是否成功。
返回一個大對象是困難的,但這個困難存在于 C 程序中,而不是 C++ 程序中。 C 函數里較少通過返回一個指針來返回對象,因為:
1、如果指針指向棧變量,毫無疑問,要么不用這個返回值,要么是一個錯誤;
2、如果指針指向堆變量,需要用這個函數的程序員會好好的看文檔且足夠細心會調用 free,要么就是內存泄漏;
3、如果指針指向 static 變量,那么用這個函數的程序員牢牢記住“下次調用這個函數以后,上次的返回值也會跟著變”。
在C++里直接返回裸指針的話,情況并不會有什么起色,不過 C++ 有智能指針的,通常它們指向堆變量,占用的空間和裸指針一樣大。考慮前面第一個函數,寫成:
std::auto_ptrObjType GetObj();
返回值如果不要,作為臨時變量,會立即被析構,返回的對象被釋放;如果需要,就得賦值給另一個智能指針。總之不用程序員記得,編譯器會保證這個對象的釋放。
考慮第二個函數,稍微有一點麻煩,因為 auto_ptr 是不能用來持有數組的,不過,在C++的世界里,std::string 幾乎總是比 char* 好用:
std::auto_ptrstd::string Encode(const char* src);
最后考慮最麻煩的情況:
bool AssembleObjList(ObjType objList[], size_t length);
網頁標題:c語言函數值返回類型 c語言函數返回值可以是什么
瀏覽路徑:http://vcdvsql.cn/article28/ddsiccp.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、網站內鏈、外貿網站建設、網站設計公司、網站營銷、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯