是的,C++中的變量可以在不同作用域中具有相同的名稱。當變量位于不同的作用域時,編譯器會根據變量的聲明和使用的位置來確定要使用哪個變量。
例如,假設我們有以下代碼:
int main() {
int x = 10;
{
int x = 20;
cout << "Inner x: "<< x << endl; // 輸出 20
}
cout << "Outer x: "<< x << endl; // 輸出 10
return 0;
}
在這個例子中,我們有兩個名為x
的變量,一個在main
函數的作用域內,另一個在一個嵌套的作用域內。盡管它們的名稱相同,但它們在不同的作用域中,因此編譯器可以區分它們。在嵌套作用域內,我們使用的是內部的x
,而在main
函數的作用域內,我們使用的是外部的x
。