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

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

局部與全局

這里的printf("main方法內,?x=%d\n",?x);輸出的為啥不是10,為啥是50呢??


正在回答

1 回答

#include?<stdio.h>
int?x?=?77;
void?fn1()
{
????printf("fn1():?x=%d\n",?x);???????
}
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;
}

看看代碼我們知道了啊.

因為在main()中重新定義了x變量位10.

然后在

if(x>0)
{
????x?=?100;
????x?/=?2;
????printf("if語句內,?x=%d\n",?x);???????
}

中是沒有重新定義x變量,而是給x變量賦予了新值100.

x?=?100;

看到沒.是賦值.而不是定義.而后

x?/=?2;

也就是50了.在后面的輸出自然是50.

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

逆水中的魚 提問者

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

舉報

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

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

進入課程

局部與全局

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

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

幫助反饋 APP下載

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

公眾號

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