這條語句一般情況下加在主函數(shù)的最后,表示程序運行正常,則返回一個整數(shù)值0。其實在windows下一般沒有這個要求,除非是一個程序調(diào)用另外一個程序,或者在unix和linux下系統(tǒng)會要求一個程序返回一個整數(shù)值。
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、做網(wǎng)站與策劃設(shè)計,梅河口網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:梅河口等地區(qū)。梅河口做網(wǎng)站價格咨詢:13518219792
函數(shù)的返回值通過return語句來執(zhí)行,即return后的變量或表達式的值,就為該函數(shù)的返回值(你可以根據(jù)需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
a;(a的類型,你在函數(shù)體里定義的是int
a;但根據(jù)需要,你要的是一個float型的返回值),于是,這樣定義一個函數(shù):
float
函數(shù)名(參數(shù)列表)
{
int
a;
函數(shù)體;
……
return
a;
}
這樣,返回值a就變成了float型。
無參無返回值類型函數(shù)是 void ss(void)
無參有返回值類型函數(shù)是 int ss(void)這就表示函數(shù)的返回值是int類型的,你可以改為你想要的任何類型
有參有返回值類型函數(shù)是 int ss(int x,int y)這就表示函數(shù)的返回值是int類型的,且函數(shù)具有兩個參數(shù),且兩個參數(shù)都是int類型的。當然你可以改為你想要的任何在C里面支持的類型。。
實際上參數(shù)就是你需要傳遞給函數(shù)進行處理的值,返回值就是指你的函數(shù)當處理完傳遞的參數(shù)過后需要傳回給調(diào)用函數(shù)的一個值得。。
Return
就是返回值,可以返回指針
或者其他數(shù)據(jù)類型,這個根據(jù)你被調(diào)用這個函數(shù)的功能,
例如
main
函數(shù)中經(jīng)常返回0,main函數(shù)是系統(tǒng)調(diào)用函數(shù),開啟一個進程,返回0
表示進程正常終止,其他異常終止
根據(jù)函數(shù)的類型函數(shù)的返回值功能也不同
我覺得主要有一下幾類
第一類
:
返回的是狀態(tài),如:
main函數(shù)
第二類
:
返回運算結(jié)果
如:int
fn(int
a+b)
{return
a+b;}
第三類
: 其他
至于函數(shù)返回到那里,誰調(diào)用這個函數(shù),函數(shù)就返回給誰,MAIN函數(shù)返回給系統(tǒng)
函數(shù)參數(shù)和
返回值
三種傳遞方式:值傳遞、指針傳遞和引用傳遞
引用與指針的比較
引用是
C++中的概念,初學者容易把引用和指針混淆一起。一下程序中,n
是m
的一個引用(
reference
),m
是被引用物(referent)。
int
m;
int
n
=
m;
n
相當于m
的別名(綽號),對n
的任何操作就是對m
的操作。所以n
既不是m
的拷貝,也不是指向m
的指針,其實n
就是m
它自己。
C++語言
中,函數(shù)的參數(shù)和返回值的傳遞方式有三種:值傳遞、指針傳遞和引用傳遞。
以下是“值傳遞”的示例程序。由于Func1
函數(shù)體內(nèi)的x
是
外部變量
n
的一份拷貝,改變x
的值不會影響n,
所以n
的值仍然是0。
void
Func1(int
x)
{
x
=
x
+
10;
}
int
n
=
0;
Func1(n);
cout
“n
=
”
n
endl;
//
n
=
以下是“指針傳遞”的示例程序。由于Func2
函數(shù)體內(nèi)的x
是指向外部變量n
的指針,改變該指針的內(nèi)容將導致n的值改變,所以n
的值成為10。
void
Func2(int
*x)
{
(*
x)
=
(*
x)
+
10;
}
int
n
=
0;
Func2(n);
cout
“n
=
”
n
endl;
//
n
=
10
以下是“引用傳遞”的示例程序。由于Func3
函數(shù)體內(nèi)的x
是外部變量n
的引用,x
和n
是同一個東西,改變x
等于改變n,所以n
的值成為10。
void
Func3(int
x)
{
x
=
x
+
10;
}
int
n
=
0;
Func3(n);
cout
“n
=
”
n
endl;
//
n
=
10
對比上述三個示例程序,會發(fā)現(xiàn)“引用傳遞”的性質(zhì)象“指針傳遞”,而書寫方式象“值傳遞”。實際上“引用”可以做的任何事情“指針”也都能夠做,為什么還要“引用”這東西?
答案是“用適當?shù)墓ぞ咦銮∪缙浞值墓ぷ鳌薄?/p>
①為什么需要return?
為了回答這個問題,
我打算用 模塊思維 來解釋。
②定義模塊(形參模塊)
定義函數(shù):f(s)(a,b)
滿足公式:s=a+b
函數(shù)名:f(s)
形參: a,b(公式中的 變量 )
函數(shù)返回值:return s
③調(diào)用模塊(實參模塊)
主函數(shù):main()表示用戶自己編寫的部分
調(diào)用函數(shù):f(s)(1,2)
滿足公式:x=f(s)(1,2)
函數(shù)名:f(s)和定義函數(shù)一致,產(chǎn)生調(diào)用
實參 :1,2( 賦值 給公式的值)
求值:printf("%d\n",x),求x的值?
④值的傳遞過程
調(diào)用模塊 中調(diào)用函數(shù)x=f(s)(1,2)
將實參1和2的值賦值給
定義模塊 中的形參a和b
(實參到形參是單向傳遞,不可逆)
定義模塊計算出s=a+b=1+2=3
定義模塊 中的return s
將s的值賦值給
調(diào)用模塊 中的函數(shù)f(s)(1,2)
即x=f(s)(1,2)=s=3
~
return s的作用
就是將定義模塊中的s
賦值 給調(diào)用模塊中的調(diào)用函數(shù)
如果沒有return s
調(diào)用模塊中的調(diào)用函數(shù)將永遠沒有定值
即所求x 無定值
這一點和數(shù)學不一樣,
數(shù)學中
同一函數(shù)名的值是 通用 的,
C語言中
定義函數(shù)和調(diào)用函數(shù)的值是 隔離 的,
盡管函數(shù)名一樣
如果不賦值,調(diào)用函數(shù)永遠無定值。