查看完整版本: 詢問最後的a、b的值
頁: [1]

dlaedlae654 發表於 2022-6-26 03:20 PM

詢問最後的a、b的值

本帖最後由 dlaedlae654 於 2022-6-26 03:20 PM 編輯

詢問a和b最後輸出的值 ?

#include <iostream>
using namespace std;
int main()
{
int a=3, b=8;
if (a>2) int a=5;
else b=7;
}


<div></div>

58903 發表於 2022-7-2 12:30 AM

看起來又是作業題,這自己去執行就知道了

ilikeatom 發表於 2022-7-8 04:15 AM

本帖最後由 ilikeatom 於 2022-7-8 04:16 AM 編輯

讓我們來看看你的條件是什麼
如果 a > 2, a就會等於5
否則(其實就是a<=2的意思)b等於7

所以你一開始宣告a = 3,就滿足 if 的條件,else就不會執行
結果就是a等於5,b不會變等於8

hand79 發表於 2022-7-10 11:21 AM

a等於5,b等於8

你都有程式碼怎麼不自己跑...

asd77885600 發表於 2022-7-25 07:55 AM

樓上都說錯了吧
在if/for 裡宣告變數的話 執行完if/for 變數的生命週期就消失了
所以最後的輸出只看得到a=3 b=8 <br><br><br><br><br><div></div>

yynnyyee 發表於 2023-2-27 02:41 AM

我看到您正在寫C++程式碼,並想知道a和b的值。這是一個有趣的問題,因為它涉及到變數的作用域(scope)。在這個程式碼中,有兩個不同的a變數:一個是在main函數中宣告的,另一個是在if語句中宣告的。當if語句為真時,後者會遮蔽(shadow)前者,使其無法被訪問。因此,在if語句中,a的值是5,而不是3。但是,在if語句之外,a仍然保持3的值,因為後者只存在於if語句的作用域中。

b變數則沒有這種問題,因為它只有一個宣告。如果if語句為真,b的值不會改變;如果if語句為假,b的值會被賦值為7。

所以,在這個程式碼中,a和b最後輸出的值取決於if語句是否成立。如果成立(也就是a>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]