伊莉討論區
標題:
詢問最後的a、b的值
[打印本頁]
作者:
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;
}
作者:
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
作者:
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>2),那麼a=3, b=8;如果不成立(也就是a<=2),那麼a=3, b=7。
歡迎光臨 伊莉討論區 (http://a402.file-static.com/)
Powered by Discuz!