C++ 在声明后定义枚举变量

C++ 在声明后定义枚举变量,c++,enums,C++,Enums,我在学数数。我有以下问题:我不明白,为什么会这样: enum {fahrrad = 1, Auto = 2} einFahrzeug; int main() { einFahrzeug = fahrrad; 但这并不是: enum {fahrrad = 1, Auto = 2} einFahrzeug; einFahrzeug = fahrrad; int main() { ... 我很乐意得到一个答案你不能在函数之外给变量赋值。更简单的例子: #include <iostr

我在学数数。我有以下问题:我不明白,为什么会这样:

enum {fahrrad = 1, Auto = 2} einFahrzeug;
int main() {
    einFahrzeug = fahrrad;
但这并不是:

enum {fahrrad = 1, Auto = 2} einFahrzeug;
einFahrzeug = fahrrad;

int main() { ...

我很乐意得到一个答案

你不能在函数之外给变量赋值。更简单的例子:

#include <iostream>

int x;
x = 42;

int main()
{
    std::cout << x << '\n';
}

在ideone.com上试试看:

这与
enum
s没有任何关系。在全局范围内不能有可执行代码。从A学习。
prog.cpp:4:1: error: ‘x’ does not name a type
 x = 42;
 ^