1
#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++ では、すべての宣言に型指定子が必要です。

4

5 に答える 5

2

グローバル スコープには、任意のステートメントではなく、宣言と定義のみを含めることができます。

C++ は、 という別の変数を宣言して定義しようとしていると考えますb

于 2012-08-07T10:00:44.910 に答える
1

式ステートメント ( などb=100;) は、関数内にある必要があります。

関数の外では、変数を宣言して初期化できますが、任意のコードを直接実行することはできません。

int b=100;この特定のエラーが発生するのは、コンパイラがコードを、そのようなことを想定していない式ステートメントとしてではなく、型指定子のない (つまり、int欠落している)宣言として解釈するためです。このような宣言は C では許可されていますが (ただし、この場合、 という変数が既に存在するため失敗しますb)、C++ では許可されていません。

于 2012-08-07T10:00:10.103 に答える
1

初期化する場合を除いて、グローバル スコープの変数に代入することはできません。

于 2012-08-07T10:00:13.973 に答える
0

ステートメントは関数内で発生する必要があります。グローバル変数は、関数本体の外側で定義および初期化できます。ただし、割り当ては関数本体内で行う必要があります。

于 2012-08-07T10:14:01.970 に答える
0

あなたはしなければならないでしょう

b = 100; 

内部メイン。関数の外で既に宣言されている変数を変更することはできません。

于 2012-08-07T10:02:00.993 に答える