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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

int x =10在這個(gè)位置為什么fn1()輸出的不是10而是50

#include <stdio.h>

int x = 77;

void fn1()

{

? ? printf("fn1(): x=%d\n", x);? ? ? ?

}

int main()

{

? ?

? ? if(x>0)

? ? {

? ? ? ? x = 100;

? ? ? ? x /= 2;

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

? ? }

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

? ? fn1();

? ? return 0;

}


正在回答

3 回答

搞錯(cuò)問(wèn)題了,重新回答一下。

還有你搞錯(cuò)了,輸出50那個(gè)代碼是if語(yǔ)句的輸出,不是fn1()的輸出。


你這把int x= 10; 放到了主函數(shù)調(diào)用無(wú)參函數(shù)fn1()前面,


無(wú)參函數(shù)fn1(),不論你在main函數(shù)中哪個(gè)位置定義int x = 10;

無(wú)參函數(shù)fn1()里面運(yùn)行的x的值都是使用全局變量定義的 int x=77的值。所以fn1() = 77.


0 回復(fù) 有任何疑惑可以回復(fù)我~

因?yàn)楸桓采w住了,

代碼運(yùn)行,

第一第二行后得x=77

然后運(yùn)行到主函數(shù) int main()?

接著運(yùn)行到if判斷語(yǔ)句,現(xiàn)在x=77, 77>0,所以進(jìn)入if語(yǔ)句

進(jìn)入if語(yǔ)句后,x=100,重新給x賦值了100,覆蓋掉前面的77了,所以現(xiàn)在x=100

接著運(yùn)行下一個(gè)? x /= 2? ,即 x=x/2? ,? x=100/2=50,計(jì)算完成后x的值為50了;

下一句就是輸出語(yǔ)句了,所以第一句輸出“if語(yǔ)句內(nèi),x=50”.


接著退出了if語(yǔ)句......

0 回復(fù) 有任何疑惑可以回復(fù)我~

本節(jié)應(yīng)該定義三個(gè)x,即要用三次int x。

第一個(gè)int x=77是全局變量,作用范圍是整個(gè)程序。

第二個(gè)int x=10是局部變量,作用于整個(gè)函數(shù)main()。

第三個(gè)int x=100也是局部變量,但僅作用于if復(fù)合語(yǔ)句范圍內(nèi)。

三個(gè)x作用范圍依次減小,范圍大的可以作用于范圍小的,范圍小的不能作用于范圍大的,且優(yōu)先使用范圍小的。

你在if語(yǔ)句中沒(méi)有定義第三個(gè)x,而是直接使用x,且第二個(gè)x定義在if語(yǔ)句之后,所以你的if語(yǔ)句中使用的是第一個(gè)x。你之后定義了第二個(gè)x=10,此時(shí)你的第一個(gè)x=50,而fn1()在main函數(shù)之外,使用的是第一個(gè)x=50。


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

int x =10在這個(gè)位置為什么fn1()輸出的不是10而是50

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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