第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

一個(gè)c函數(shù)問題?

一個(gè)c函數(shù)問題?

C
撒科打諢 2019-02-09 15:11:27
你好,按照您的說法,modifyvalue(),changevalue(int x)是針對全局變量的,這樣的話在第一次打印x時(shí),首先changvalue()操作后,x的值變?yōu)?1,然后經(jīng)過一次自增操作,變?yōu)榱?2,而后調(diào)用modifyvalue函數(shù)對其進(jìn)行變動,這樣的話結(jié)果應(yīng)該不是12啊,modifyvalue函數(shù)在整個(gè)程序運(yùn)行過程中有沒有起到作用呢?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

對原問題的回答,原文中l(wèi)w2078的回答基本正確,這主要是一個(gè)變量作用域的問題。

為討論方便起見,源程序抄錄于下:(注釋為本人所加解釋)

1234567891011121314151617181920212223242526int x; //全局變量,不妨記為x1,因全局變量是靜態(tài)變量,所以默認(rèn)初始值為0int modifyvalue()return(x+=10); } //此處的x為x1 int changevalue(int x) //在此定義的x,不妨記為x2,因?yàn)榕cx1同名,本函數(shù)內(nèi)x1不起作用{return(x+=1);}  //相當(dāng)于return x2+=1  void main()//在此定義的x,不妨記為x3,因?yàn)榕cx1同名,本函數(shù)內(nèi)x1不起作用 {int x=10;   //相當(dāng)于int x3=10x++;        //相當(dāng)于 x3=10+1=11changevalue(x); //相當(dāng)于changevalue(11),即x2=11,return x2+1(返回值被忽略)x++;        //相當(dāng)于 x3=11+1=12changevalue(x); //調(diào)用 modifyvalue(),相當(dāng)于x1=x1+10=10printf("First output:%dn",x); //相當(dāng)于輸出 x3,即12x++;      //相當(dāng)于 x3=12+1=13changevalue(x);//相當(dāng)于changevalue(13),即x2=13,return x2+1(返回值被忽略) printf("Second output:%dn",x);//相當(dāng)于輸出 x3,即13 modifyvalue();   //調(diào)用 modifyvalue(),相當(dāng)于x1=x1+10=20printf("Third output:%dn",x);//相當(dāng)于輸出 x3,即13 }

理解本問題,以下幾點(diǎn)要注意:

1. 調(diào)用changevalue(x)、modifyvalue()兩函數(shù)時(shí),沒有使用返回值,即相當(dāng)于兩函數(shù)的return沒有直接起作用。 

2. 定義changevalue(x)函數(shù)時(shí),參數(shù)是值傳送,在changevalue()內(nèi)x的變化不會影響到main()中的x。

3.要注意變量的作用域,尤其是同名變量的作用域。



查看完整回答
反對 回復(fù) 2019-02-27
  • 2 回答
  • 0 關(guān)注
  • 944 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號