請(qǐng)教一個(gè)小問題
#include <stdio.h>
int getGirth(int a,int b,int c)
{
??? if( (a+b)<=c || (a+c)<=b || (b+c)<=a )?? //判斷是否為三角形
??? {
??????? printf("不構(gòu)成三角形\n");
??????? return 0;???????????????????????????????
??? }
??? else
??? {
????? int cirf = a+b+c;???? //計(jì)算三角形周長(zhǎng)
????? return cirf;
??? }
??????
}
int main()
{
??? /* 定義三角形三邊長(zhǎng) */
??? int a, b, c;
??? a = 3;
??? b = 4;
??? c = 5;
??? printf("三角形的周長(zhǎng)是:%d\n", getGirth());? //調(diào)用周長(zhǎng)函數(shù)
??? return 0;
}
用這樣的代碼的時(shí)候? 出來的結(jié)果為什么會(huì)是 “三角形的周長(zhǎng)是:4195712?”呢
2017-01-18
printf("三角形的周長(zhǎng)是:%d\n",getGirth());這一句里面的調(diào)用函數(shù)“getGirth()”添加參數(shù)a,b,c.即是getGirth(a,b,c),再次運(yùn)行就可以得出結(jié)果了。這是因?yàn)間etGirth()里面的參數(shù)是形參,它只在函數(shù)內(nèi)部有效,函數(shù)調(diào)用結(jié)束返回主函數(shù)后則不能再使用該形參變量(這句話是重點(diǎn))而主函數(shù)main()里面的參數(shù)是實(shí)參,實(shí)參在進(jìn)行調(diào)用時(shí)必須具有確定的值,故有a=3;b=4;c=5;這些賦值,以便把這些值傳給形參,因此應(yīng)該用賦值的方法是實(shí)參獲得確定的值。希望對(duì)你有幫助。