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

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

請問為什么在main函數里輸出還是50,就是這句 printf("main方法內, x=%d\n", x);

#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;

}


正在回答

2 回答

你需要在第12行"x = 100;"前加上"int ",這時該行就變成了在if語句塊內定義了一個新的int x,這個x的作用域是if語句塊,這時if內x的值是100,if外main內x的值是10,main外x的值是77

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

qq_Paradise_nsEFO3 提問者

弄懂了,謝了
2018-10-08 回復 有任何疑惑可以回復我~
#2

哎呀帥呀

感覺那個fn1()應該也是屬于main內啊
2018-12-03 回復 有任何疑惑可以回復我~
#3

13Mr 回復 哎呀帥呀

fn1函數是一個單獨的函數,屬于局部變量,在函數里沒有定義x的值,所以這個函數就會調用全局變量x=77
2019-02-10 回復 有任何疑惑可以回復我~

我也一樣?貌似有個bug總覺得每個月的第一個日志應該浮動在左邊,

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

舉報

0/150
提交
取消

請問為什么在main函數里輸出還是50,就是這句 printf("main方法內, x=%d\n", x);

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

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

幫助反饋 APP下載

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

公眾號

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