當前位置:首頁 » 編程語言 » c語言中返回數據類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中返回數據類型

發布時間: 2023-07-17 13:48:51

c語言中函數返回類型和函數返回值

返回值:就是在函數調用中被調用的函數會帶回一個函數運行得到的值!
函數返回類型可以是預定義類型(如int
或double)、復合類型(如int&或double*)、用戶定義類型(如枚舉類或void
後者意指函數不返回值)

⑵ c語言中return語句返回值的類型是不是默認的為整型請做詳細解答。

不是,返回值類型是你自己定義函數的時候設定的,比如定義了函數fun
char fun();需要返回char型的變數
void fun();不需要返回任何變數值
double fun();返回double類型的值
當然也可以返回其它類型

⑶ C語言中返回值類型是什麼

你說的是函數的返回者吧
函數的值是指函數被調用之後,執行函數體中的程序段所取得的並返回給主調函數的值。如調用正弦函數取得正弦值。對函數的值(或稱函數返回值)有以下一些說明:
1) 函數的值只能通過return語句返回主調函數。
return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,並返回給主調函數。在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行,因此只能返回一個函數值。
2) 函數值的類型和函數定義中函數的類型應保持一致。如果兩者不一致,則以函數類型為准,自動進行類型轉換。
3) 如函數值為整型,在函數定義時可以省去類型說明。
4) 不返回函數值的函數,可以明確定義為「空類型」,類型說明符為「void」。如例8.2中函數s並不向主函數返函數值,因此可定義為:
void s(int n)
{ ……
}
一旦函數被定義為空類型後,就不能在主調函數中使用被調函數的函數值了。例如,在定義s為空類型後,在主函數中寫下述語句
sum=s(n);
就是錯誤的。
為了使程序有良好的可讀性並減少出錯, 凡不要求返回值的函數都應定義為空類型。

⑷ c語言中fgets的返回值類型

1、如果成功,該函數返回相同的 str 參數。如果到達文件末尾或者沒有讀取到任何字元,str 的內容保持不變,並返回一個空指針。如果發生錯誤,返回一個空指針。

在讀字元時遇到end-of-file,則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則stream保持原來的內容,返回NULL;

2、如果發生讀入錯誤,error指示器被設置,返回NULL,stream的值可能被改變。

如果文件中的該行,不足n-1個字元,則讀完該行就結束。如若該行(包括最後一個換行符)的字元數超過n-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字元結尾,對fgets的下一次調用會繼續讀該行。

函數成功將返回stream,失敗或讀到文件結尾返回NULL。因此不能直接通過fgets的返回值來判斷函數是否是出錯而終止的,應該藉助feof函數或者ferror函數來判斷。

(4)c語言中返回數據類型擴展閱讀

函數使用:

1、同時可以用作鍵盤輸入:fgets(key,n,stdin)且還必須:key[strlen(key)]=''或者key[n-1]=''

2、還有種程序經常使用的方法:key[strlen(key-1)]=0x00;

3、與gets相比使用這個好處是:讀取指定大小的數據,避免gets函數從stdin接收字元串而不檢查它所復制的緩存的容積導致的緩存溢出問題。

⑸ C語言規定,函數返回值的類型由什麼決定

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

也就是說你的函數是什麼類型,返回值就是什麼類型。

比如:

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

返回值就是整型

函數定義 int *fun(int a)

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

函數定義 void fun(int a)

無返回值

(5)c語言中返回數據類型擴展閱讀

函數可以有返回值,只要 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_ptr<ObjType> GetObj();

返回值如果不要,作為臨時變數,會立即被析構,返回的對象被釋放;如果需要,就得賦值給另一個智能指針。總之不用程序員記得,編譯器會保證這個對象的釋放。

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

std::auto_ptr<std::string> Encode(const char* src);

最後考慮最麻煩的情況:

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

⑹ c語言中函數返回值的類型由什麼決定

是由你定義函數時所定義的函數的類型決定的。

也就是說函數是什麼類型,返回值就是什麼類型。

比如:

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

返回值就是整型。

函數定義 int *fun(int a)。

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

函數定義 void fun(int a)。

無返回值。

簡介

在調用函數時,如果需要從被調函數返回一個值供主調函數使用,那麼返回值類型必須定義成非 void 型。此時被調函數中必須包含 return 語句,而且 return 後面必須要有返回值,否則就是語法錯誤。

一個函數中可以有多個 return 語句,但並不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句後的其他語句都不會執行。

⑺ c語言 如果要定義函數的返回類型為布爾類型,怎麼定義

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。