#include <iostream>
using namespace std;
int b=10;
//b=100;
int main(int argc, char *argv[])
{
cout<<b<<endl;
return 0;
}
のコメントを削除するとエラーにb = 100
なります。それはなぜですか。それ以外の場合、出力は 10 になります。エラー: C++ では、すべての宣言に型指定子が必要です。
#include <iostream>
using namespace std;
int b=10;
//b=100;
int main(int argc, char *argv[])
{
cout<<b<<endl;
return 0;
}
のコメントを削除するとエラーにb = 100
なります。それはなぜですか。それ以外の場合、出力は 10 になります。エラー: C++ では、すべての宣言に型指定子が必要です。
グローバル スコープには、任意のステートメントではなく、宣言と定義のみを含めることができます。
C++ は、 という別の変数を宣言して定義しようとしていると考えますb
。
式ステートメント ( などb=100;
) は、関数内にある必要があります。
関数の外では、変数を宣言して初期化できますが、任意のコードを直接実行することはできません。
int b=100;
この特定のエラーが発生するのは、コンパイラがコードを、そのようなことを想定していない式ステートメントとしてではなく、型指定子のない (つまり、int
欠落している)宣言として解釈するためです。このような宣言は C では許可されていますが (ただし、この場合、 という変数が既に存在するため失敗しますb
)、C++ では許可されていません。
初期化する場合を除いて、グローバル スコープの変数に代入することはできません。
ステートメントは関数内で発生する必要があります。グローバル変数は、関数本体の外側で定義および初期化できます。ただし、割り当ては関数本体内で行う必要があります。
あなたはしなければならないでしょう
b = 100;
内部メイン。関数の外で既に宣言されている変数を変更することはできません。