c語言返回值類型
① 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語言中函數返回值類型的是定義函數時在函數首部所指定的類型。
在C語言中,一個標準的函數定義語句塊必須包含函數返回值的類型標識符、函數名、形參類型及數量、函數體、返回值表達式。如果函數返回值類型為
void
(即無返回值)。
函數定義示例(其中int是函數返回值類型):
int
fun(int
a,
int
b){
return
a>b
?
a
:
b;
}
(2)c語言返回值類型擴展閱讀
C語言函數類型種類舉例介紹:
1、void
空類型,表示該函數無返回值;
2、int
整形,表示該函數返回int整形數值;
3、double
雙精度,函數返回雙精度數值;
4、char
字元串,函數返回字元串;
5、long
長整型,函數返回長整型數值;
③ c語言中函數的返回值到底是什麼意思,有什麼用
一個函數的函數名既是該函數的代表,也是一個變數。由於函數名變數通常用來把函數的處理結果數據返回給調用函數,即遞歸調用,所以一般把函數名變數稱為返回值,函數的返回值類型是在定義函數時指定的。
函數可以有返回值,也可以沒有返回值。
1、沒有返回值的函數:功能只是完成一個操作,應將返回值類型定義為void,函數體內可沒有return語句。
2、有返回值的函數:函數的最後會有一個返回值return,可以用來獲取該函數執行結果返回給該函數,讓外部調用該函數的。
一個函數的函數名既是該函數的代表,也是一個變數。由於函數名變數通常用來把函數的處理結果數據返回給調用函數,即遞歸調用,所以一般把函數名變數稱為返回值,函數的返回值類型是在定義函數時指定的。
(3)c語言返回值類型擴展閱讀
C程序中的print函數:
是這樣寫的:printf("%d ",printf("%d",printf("%d",i)));
一共有三個printf函數,我們可以使用一些代號來簡化這個printf函數,如下:
代號A: printf("%d",printf("%d",i));
代號B: printf("%d",i)
則C程序代碼可以簡化為:printf("%d ",A); 那麼我們就先來求A。而A,又可以簡化為:printf("%d",B);那麼就先來求B。
B是 printf("%d",i),列印出「123」,即在C語言運行結果中,你最先看到的是123。C語言printf函數的返回值是printf實際控制輸出的字元數,那麼列印的123 就是3個字元,因此printf("%d",i)返回的就是3,也就是B是3。
那麼,A就可以寫為printf("%d",printf("%d",3));列印出3,即在運行結果中,你緊接著會看到3。
而列印出的3是1個字元,因此A就是1,那麼printf("%d ",A); 實際上就是printf("%d ",1); 列印出1。
④ C語言函數返回類型
函數調用結果的返回值,可以通過3個途徑獲得。
(1)函數自身返回
(2)通過函數參數返回
(3)通過全局量返回。
到底用那種方法,取決於耐胡程序員的考慮。
Node* --通過 函數自身返回,返回一個結構指針,指向 Node 型結構。
int -- 通過 函數自身返回,返回一個整型量。
CreateLinkList 是建鏈表,返回汪哪Node* 結構指針
GetElem 獲取元素單元,返回Node* 結構指昌陵攔針
InsertLinkList 用 int 表示插入成功或失敗,或用 int 表示什麼。
這些 都 取決於程序員的考慮。 沒有絕對的規定。
⑤ c語言返回值具體是指什麼
子函數的返回值,main主函數也是有返回值的,但是一般用不到都忽略掉了,一般來說的返回值就是子函數的返回值。當需要一個函數去處理數據時,如求平方,這時候求平方後的值可以有兩種方法表達
1、以值的形式返回給你,即return x,這樣就可以利用這個結果了,此時函數名前當然要加返回的數據類型了
2、當不需要對這一結果進一步處理時,直接printf,這樣可以直接在終端上顯示結果了,這時就沒必要去加了,直接VOID
(5)c語言返回值類型擴展閱讀
void:聲明函數無返回值或無參數,聲明無類型指針,顯示丟棄運算結果。(C89標准新增)
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 * 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。
⑥ C語言中函數返回類型和函數返回值
函數的返回值通過return語句來執行,即return後的變數或表達式的值,就為該函數的返回值(你可以根據需要自定義返回什麼值),而返回值的類型是指該值你想要得到的類型,比如return
a;(a的類型,你在函數體里定義的是int
a;但根據需要,你要的是一個float型的返回值),於是,這樣定義一個函數:
float
函數名(參數列表)
{
int
a;
函數體;
……
return
a;
}
這樣,返回值a就變成了float型。
⑦ C語言中 關於返回值 誰能具體講一下
你這個問題很籠統
我就大概說下返回值的東東吧
在C語言裡面所謂返回值是說一個函數當他執行到return的時候他會停止執行下面的語句向引用他的地方傳遞一個值
下面舉例子說明
int
pp(void
)
//那個int就代表返回值的類型
{
……
return
0;
//這個就代表給執行pp這個函數的地方返回int類型的0
}
如果在主函數中有一句a=pp();那麼等號右邊就等於int
類型的0
,如果a是int類型那麼a就等於0
return後面還可以接表達式
int
kk(int
a,int
c)
{
return
a+c;
//這個就代表給執行pp這個函數的地方返回a+c的結果
}
如果調用的地方寫int
k;
k=kk(3,4);那麼結果就是k等於7
當然返回值類型不是只有int
還可以有char
float那些和結構體類型
如果你不需要返回的時候可以寫void
kk(void){}這樣就不會返回了
但是如果你是寫
kk(void){}沒有前面的void默認是給你在前面補上int的而不是無返回值
還有什麼問題你再追問吧
⑧ c語言if的返回值類型
#include<stdio.h>
#include<stdlib.h>
int main()
{
int year,flag;
printf("Enter year:");
scanf("%d",&year);
if(year%4==0&&year%100!=0)
flag=1;
else
flag=0;
if(year%400==0)
printf("%d is a leap year! ",year);//是閏年
else
printf("%d is not a leap year ",year);//不是
return 0;
}
(8)c語言返回值類型擴展閱讀:
return表示把程序流程從被調函數轉向主調函數並把表達式的值帶回困襪主調函數,實現函數值的返回,返回兆滑時可附帶一個返回值,由return後面的參數指定。
return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要汪猜激返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
⑨ 決定C語言中函數返回值類型的是【 】
決定C語言中函數迅臘返回值類型的是定義函數時在函數首部團昌虧所指定的類型。
在C語言中,一個標準的函數定義語句塊必須包含函數返回值的類型標識符、函數名、形參類型及數量、函數體、返回值表達式。如果函數返回值類型為 void (即無返回值)。
函數定義示例(其中int是函數返回值類型):
int fun(int a, int b){
return a>b ? a : b;
}
(9)c語言返回值類型擴展閱讀
C語言函數類型種類舉例介紹:
1、void 空類型,表示該函數塌神無返回值;
2、int 整形,表示該函數返回int整形數值;
3、double 雙精度,函數返回雙精度數值;
4、char 字元串,函數返回字元串;
5、long 長整型,函數返回長整型數值;
⑩ C語言規定,函數返回值的類型由什麼決定
c語言規定,函數返回值的類型是由函數首部定義的類型決定。函數返回值應與首部定義的類型一致,如若不一致,則自動將返回值強制轉換為函數首部定義的類型。沒有定義類型時默認為int型。
也就是說你的函數是什麼類型,返回值就是什麼類型。
比如:
函數定義 int fun(int a,char b)
返回值就是整型
函數定義 int *fun(int a)
返回值就是基類型為整型的指針
函數定義 void fun(int a)
無返回值
(10)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);