十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
你可以這么理解,比如我們定義了一個函數(shù)fun(),如果這個函數(shù)有返回值,那么在調(diào)用程序里面(比如主函數(shù))就可以把這個函數(shù)當(dāng)成一個數(shù)使用;如果沒有返回值,那么通常他就是一個獨立的語句存在。
成都創(chuàng)新互聯(lián)來電聯(lián)系:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)頁制作領(lǐng)域十余年,包括成都門簾等多個行業(yè)擁有多年的網(wǎng)站制作經(jīng)驗,選擇成都創(chuàng)新互聯(lián),為企業(yè)錦上添花!
比如fun函數(shù)里面有個return 0;表示返回值是零,那么在調(diào)用函數(shù)里面就可以存在諸如
a=fun();b=a+fun();if(fun()=0{};……這類的語句,表示a=0;b=a+0;if(00){};等等,當(dāng)然也可能是返回一個變量的值,你個指針的值是一樣的。
如果沒有return 語句,那么函數(shù)沒有返回值,調(diào)用函數(shù)里面就不能把他當(dāng)做一個數(shù)值來使用,會出現(xiàn):
fun();單獨成句的語句,在fun()里面可能進行了一些操作,但不需要結(jié)果。
C語言自帶的函數(shù)通常都有返回值,計算函數(shù)返回計算結(jié)果,操作函數(shù)返回操作結(jié)果(成功返回1,失敗返回0)
參數(shù)和返回值是兩碼事,不要當(dāng)成一個詞。無參無返回值函數(shù) void faction() { } //前面的void就是返回值的類型 ‘void’是空的意思,就是說返回值是空,也就是無返回值的意思有參無返回值函數(shù) void faction(int i){ } //參數(shù)為整形的函數(shù),且也是無返回值的。無參有返回值函數(shù) int faction(){ } //返回值為int 型的函數(shù),且是無參的。有參有返回值函數(shù) char faction(int i) //返回值為char的函數(shù),且參數(shù)是int 型
return后接一個值。\r\n在調(diào)用這個函數(shù)的函數(shù)里面,調(diào)用它的時候希望獲得一個值,如果不希望獲得這個值的時候,用void聲明就好。如果需要,比如說需要得到一個整形值\r\n就聲明\r\nint func()\r\n在調(diào)用它的比如main里面\r\nfunc()的作用就可以相當(dāng)于一個int型常數(shù)\r\n比如外面定義了\r\nint max(int a,int b)\r\n{\r\nreturn ab?a:b;\r\n}\r\n主函數(shù)里面是\r\nmain()\r\n{\r\nint A;\r\nA=max(1,2);\r\n}\r\n這時候就是通過max計算 12 則return 一個1 ,1
回答于?2022-11-16
首先說明一下你的程序的問題與缺陷:
1: return語句 只能返回一個值,而不能寫成 “return h,l;”
2:你在main()中定義了h,l,而在調(diào)用cal()時,又定義了h,l,這兩個h,l是完全不同的兩組。即使你為cal()里的h,l賦值,那么返回到main()時,h,l仍然為0.
3:你在cal()里的scanf寫的不好。兩個%d之間最好什么都沒有,加了逗號,可能會在讀取時,h,l賦值錯誤。(具體請看我下面的程序)
下面是我的解法:
先問一下,你用的是TC2.0還是VC6.0?
如果是VC6.0,那么可以使用引用類型:
/*法一:使用引用*/
#includestdio.h
void?cal(intch,?intcl);????/*聲明ch,cl為引用類型*/
void?main()
{
int?h=0,l=0;
cal(h,?l);????????????/*這里將h,l傳入cal()*/
printf("%d,%d",h,l);????
}
void?cal(int?ch,?int?cl)
{
scanf("%d%d",ch,cl);/*這里為ch,cl賦值*/
}
TC2.0中好像不支持引用類型。我沒測試。
-------------------------
如果是TC2.0,那么可以使用指針:
/*法二:使用指針*/
#includestdio.h
void?cal(int?*ph,?int?*pl);????/*這里將ph,pl聲明為指針*/
void?main()
{
int?h=0,l=0;
cal(h,?l);????????/*將變量h,l地址傳過去。*/
printf("%d,%d",h,l);
}
void?cal(int?*ph,?int?*pl)
{
scanf("%d%d",ph,pl);????/*為ph,pl賦值*/
}
------------------
以上兩種方法都可以解決你說的問題。
有問題請追問。
函數(shù)的值(或稱函數(shù)返回值)是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的值,可以通過return語句返回。
return語句的一般形式為:
return 表達式;
或者:
return (表達式);
例如:
return max;
return a+b;
return (100+200);
函數(shù)中可以有多個 return 語句,但每次調(diào)用只能有一個return 語句被執(zhí)行,所以只有一個返回值。
一旦遇到 return 語句,不管后面有沒有代碼,函數(shù)立即運行結(jié)束,將值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始終 a+b 的值,也就是300。
沒有返回值的函數(shù)為空類型,用void進行說明。例如:
void func(){
printf("Hello world!\n");
}
一旦函數(shù)的返回值類型被定義為 void,就不能再接收它的值了。例如,下面的語句是錯誤的:
int a = func();
為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。