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

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

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

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

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

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

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

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

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

理解本問題,以下幾點要注意:

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

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

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



查看完整回答
反對 回復 2019-02-27
  • 2 回答
  • 0 關注
  • 955 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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