你說的是函數的返回者吧\x0d\x0a函數的值是指函數被調用之后,執行函數體中的程序段所取得的并返回給主調函數的值。如調用正弦函數取得正弦值。對函數的值(或稱函數返回值)有以下一些說明:\x0d\x0a1) 函數的值只能通過return語句返回主調函數。\x0d\x0areturn 語句的一般形式為:\x0d\x0areturn 表達式;\x0d\x0a或者為:\x0d\x0areturn (表達式);\x0d\x0a該語句的功能是計算表達式的值,并返回給主調函數。在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行,因此只能返回一個函數值。\x0d\x0a2) 函數值的類型和函數定義中函數的類型應保持一致。如果兩者不一致,則以函數類型為準,自動進行類型轉換。\x0d\x0a3) 如函數值為整型,在函數定義時可以省去類型說明。\x0d\x0a4) 不返回函數值的函數,可以明確定義為“空類型”,類型說明符為“void”。如例8.2中函數s并不向主函數返函數值,因此可定義為:\x0d\x0avoid s(int n)\x0d\x0a{ ??\x0d\x0a}\x0d\x0a一旦函數被定義為空類型后,就不能在主調函數中使用被調函數的函數值了。例如,在定義s為空類型后,在主函數中寫下述語句\x0d\x0asum=s(n);\x0d\x0a就是錯誤的。\x0d\x0a為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數都應定義為空類型。
成都創新互聯是一家專業提供通州企業網站建設,專注與成都網站設計、成都做網站、H5頁面制作、小程序制作等業務。10年已為通州眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
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);
是由你定義函數時所定義的函數的類型決定的。
也就是說函數是什么類型,返回值就是什么類型。
比如:
函數定義? int fun(int a,char b)。
返回值就是整型。
函數定義? int *fun(int a)。
返回值就是基類型為整型的指針。
函數定義? void fun(int a)。
無返回值。
簡介
在調用函數時,如果需要從被調函數返回一個值供主調函數使用,那么返回值類型必須定義成非 void 型。此時被調函數中必須包含 return 語句,而且 return 后面必須要有返回值,否則就是語法錯誤。
一個函數中可以有多個 return 語句,但并不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句后的其他語句都不會執行。
函數的返回值通過return語句來執行,即return后的變量或表達式的值,就為該函數的返回值(你可以根據需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
a;(a的類型,你在函數體里定義的是int
a;但根據需要,你要的是一個float型的返回值),于是,這樣定義一個函數:
float
函數名(參數列表)
{
int
a;
函數體;
……
return
a;
}
這樣,返回值a就變成了float型。
文章名稱:c語言函數返回類型 c語言函數返回類型由什么決定
URL地址:http://vcdvsql.cn/article36/hpgisg.html
成都網站建設公司_創新互聯,為您提供定制開發、手機網站建設、關鍵詞優化、靜態網站、網站建設、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯