頁:
[1]
詢問最後的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> 看起來又是作業題,這自己去執行就知道了 本帖最後由 ilikeatom 於 2022-7-8 04:16 AM 編輯
讓我們來看看你的條件是什麼
如果 a > 2, a就會等於5
否則(其實就是a<=2的意思)b等於7
所以你一開始宣告a = 3,就滿足 if 的條件,else就不會執行
結果就是a等於5,b不會變等於8
a等於5,b等於8
你都有程式碼怎麼不自己跑... 樓上都說錯了吧
在if/for 裡宣告變數的話 執行完if/for 變數的生命週期就消失了
所以最後的輸出只看得到a=3 b=8 <br><br><br><br><br><div></div> 我看到您正在寫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]