EnUM声明中的C++变量声明

EnUM声明中的C++变量声明,c++,variables,types,enums,declaration,C++,Variables,Types,Enums,Declaration,我有以下代码: #include <iostream> using namespace std; enum Week_Day {SAT, SUN, MON, TUE, WED, THU, FRI} wd1 = FRI; Week_Day wd2 = SAT; int main() { cout << "\n " << wd1; cout << "\n " << wd2; cout << "\n

我有以下代码:

#include <iostream>
using namespace std;

enum Week_Day {SAT, SUN, MON, TUE, WED, THU, FRI} wd1 = FRI;

Week_Day wd2 = SAT;

int main()
{
    cout << "\n " << wd1;
    cout << "\n " << wd2;

    cout << "\n\n\n";
}
我搜索了wd1和wd2的声明方式之间的差异,但在我看来,这只是一个方便的问题

是真的,还是我错过了什么

更新1:

好的,wd1和wd2现在都是全局变量


还有其他区别吗?

是的,它在第一次定义枚举并立即使用它声明wd1 第二个是另一个声明,无需重新定义。 相同的代码在两个不同的地方没有区别。 另一个区别是因为他们定义的代码的位置,第一个是全局的,而第二个是局部的。 全局意味着变量可以在代码中的任何地方使用,并且每个人都知道它。但是局部变量在一个块中只有生命周期

{
SomeClass someVar;// defined here

...

// die here, the destructor will be called automatically by the runtime here
}

建议阅读

好吧,区别在于wd1是一个全局变量,而wd2不是……请仔细阅读并进一步了解,但要成为一个有用的答案,您需要进一步了解局部和全局的含义。