搜尋

首頁  >  問答  >  主體

C++循环的重复定义问题


第六行的int i = 0;在每轮循环均会执行,为什么能编译成功而不是提示重复定义?

天蓬老师天蓬老师2803 天前550

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:40:55

    C++的變數作用域問題

    #include <iostream>
    
    using namespace std;
    int main(int argc, char *argv[]) {
        int a = 3;
        int i = 3;
        {
            int i = 1;
        }
        cout << i << endl; // 3
    }

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:40:55

    類似全域變數和局部變數的概念。

    一個變數只在「{}」中間起作用,出了這個大括號,這個變數就自動刪除了。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 14:40:55

    編譯器沒有那麼“笨”,它會知道你的意思是在迴圈中使用一個被初始化為0的變數。而上邊a就不同了,編譯器搞不清楚為什麼要把a定義兩遍,很可能是誤輸入,所以會報錯。

    回覆
    0
  • 取消回覆