第六行的int i = 0;在每轮循环均会执行,为什么能编译成功而不是提示重复定义?
欢迎选择我的课程,让我们一起见证您的进步~~
C++ における変数スコープの問題
#include 名前空間 std を使用します。 int main(int argc, char *argv[]) { int a = 3; int i = 3; { int i = 1; } cout <<<<endl; }
グローバル変数とローカル変数の概念に似ています。
変数は「{}」の途中でのみ機能します。中括弧を削除すると、変数は自動的に削除されます。
コンパイラはそれほど「愚か」ではなく、ループ内で 0 に初期化された変数を使用しようとしていることを認識します。上記の a は異なります。コンパイラーは、なぜ a を 2 回定義する必要があるのかを理解できないため、エラーが報告されます。
C++ における変数スコープの問題
グローバル変数とローカル変数の概念に似ています。
変数は「{}」の途中でのみ機能します。中括弧を削除すると、変数は自動的に削除されます。
コンパイラはそれほど「愚か」ではなく、ループ内で 0 に初期化された変数を使用しようとしていることを認識します。上記の a は異なります。コンパイラーは、なぜ a を 2 回定義する必要があるのかを理解できないため、エラーが報告されます。