這是我的小程序:在計算初始值時是否定義了變量?
enum Type
{
b = 1,
c = 2
};
int main()
{
Type b = b;
std::cout << b << std::endl;
return 0;
}
我可以斷定,上述定義包括這連續的步驟,其輸出爲0?
- 的
b
聲明爲類型的可變Type
- 該變量和初始化用
0
默認值 - 評價它的定義是新的值,其包括變量本身(具有值0)
- 分配變量的新價值。
而且,變量是否始終使用0進行初始化,即使它們已被顯式初始化?
我的第二個問題是 - 如果它在指定示例中的初始化列表中使用該變量,那麼爲什麼我不明白歧義?編譯器是否首先在變量列表中找到b
,然後才檢查聲明的枚舉?
不要這樣做。你只會把自己和任何必須維護代碼的人混淆起來,這些代碼將來會包含你。 –
當然,你是對的!我只是試圖理解該例子中的語言邏輯。 –