i是一個(gè)變量,如果這個(gè)變量在一個(gè)函數(shù)內(nèi),可以作為函數(shù)的返回值。
為羅湖等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及羅湖網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、羅湖網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
return 是返回一個(gè)函數(shù)的值。函數(shù)內(nèi)的某個(gè)變量可以作為函數(shù)的返回值返回。
但是在函數(shù)外,直接返回某個(gè)不在函數(shù)內(nèi)部的變量是不可以的。
比如在main 中。
main()
{
int i ;
return i;
}
這是不行的。返回的是變量的內(nèi)存地址。
有 else 是
只有 n == 0 return jcjg;返回jcjg 否則不確定返回何值(實(shí)際返回 eax 寄存器的最后一次值)
沒(méi)有 else 任何時(shí)候 return jcjg;總是會(huì)返回jcjg。
不過(guò)沒(méi)見(jiàn)過(guò)這樣用遞歸的,
像這種簡(jiǎn)單計(jì)算,正常都是用迭代處理,不用遞歸的;
只有像樹(shù)一類的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),和排序或更復(fù)雜的算法,才用遞歸實(shí)現(xiàn).
int jc(int n)
{
if(n != 0)
{
printf("%d-%d\n",jcjg,n);
jcjg = jcjg * n;
//jc(n - 1);改成
return jc(n - 1);看行不行;
}
else
{
return jcjg;
}
}
你說(shuō)的是函數(shù)的返回者吧函數(shù)的值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值。對(duì)函數(shù)的值(或稱函數(shù)返回值)有以下一些說(shuō)明: 1) 函數(shù)的值只能通過(guò)return語(yǔ)句返回主調(diào)函數(shù)。 return 語(yǔ)句的一般形式為: return 表達(dá)式;或者為: return (表達(dá)式);該語(yǔ)句的功能是計(jì)算表達(dá)式的值,并返回給主調(diào)函數(shù)。在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return 語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值。 2) 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。如果兩者不一致,則以函數(shù)類型為準(zhǔn),自動(dòng)進(jìn)行類型轉(zhuǎn)換。 3) 如函數(shù)值為整型,在函數(shù)定義時(shí)可以省去類型說(shuō)明。 4) 不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說(shuō)明符為“void”。如例8.2中函數(shù)s并不向主函數(shù)返函數(shù)值,因此可定義為: void s(int n) { …… } 一旦函數(shù)被定義為空類型后,就不能在主調(diào)函數(shù)中使用被調(diào)函數(shù)的函數(shù)值了。例如,在定義s為空類型后,在主函數(shù)中寫(xiě)下述語(yǔ)句 sum=s(n); 就是錯(cuò)誤的。為了使程序有良好的可讀性并減少出錯(cuò), 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。
#include?stdio.h
//using?namespace?std;
float?x,?y,?z;
float?divide(float?a,?float?b);
int?main(void)
{
printf("\nEnter?two?float?numbers:?\n");
scanf("%d%d",?x,?y);
{
z?=?divide(x,?y);
system("pause");
}
return?0;
}
float?divide(float?a,?float?b)
{
if(b?==?0)
puts("\nThe?second?number?can't?be?evaluated?as?0!?");
//這個(gè)情況沒(méi)有return??
else
printf("\nThe?value?is?%f",a/b);
//既然是函數(shù),這應(yīng)該用形參,(指針另說(shuō))
return?a/b;
}
形參 實(shí)參 搞混了 ?函數(shù)里直接用的全局變量還不是函數(shù)的形參 ? 還有 那個(gè)?printf("\nThe value is %f",a/b); 應(yīng)該放到函數(shù)里或者在MAIN里加判斷決定是否輸出,而且divide函數(shù)里只有 ?在Y!=0時(shí)才有返回值 這樣不對(duì) ?