亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不懂,求解釋!

int main()

{

? ? int x = 10;

? ? if(x>0)

? ? {

? ? ? ? x = 100;

? ? ? ? x /= 2;

? ? ? ? printf("if語句內, x=%d\n", x); ? ? ??

? ? }

? ? printf("main方法內, x=%d\n", x);

? ? fn1();

? ? return 0;

}


這里的x=100不是只在if語句中定義的嗎?為什么會對if語句之外的printf語句產生影響?

而改成int x=100之后變成局部變量,作用范圍只在if語句內。

正在回答

1 回答

最初聲明的 x 的作用域是整個 main 函數,if 語句中修改的就是就是上面聲明的 x 的值。如果 if 中又聲明了一個 x,則重名的局部變量在小的作用域中有效,一旦回到外面,又是最初聲明的 x 有效。

1 回復 有任何疑惑可以回復我~
#1

黃鋒 提問者

非常感謝!
2015-07-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

不懂,求解釋!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號