我尝试创建一个大小为 12 的简单数组,以保存一年中的所有月份。月份是包含该月天数的整数。但是我遇到了一些非常奇怪的行为(如下所示)。
#include <iostream>
using namespace std;
int main()
{
int sep, apr, jun, nov = 30;
int jan, mar, may, jul, aug, oct, dec = 31;
int feb = 28;
int year = 1900;
if(year%4 == 0 && year%100 != 0)
feb = 29;
if(year%100 == 0 && year%400 == 0)
feb = 29;
int months[12] = {jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec};
for(int i = 0; i < 12; i++)
cout << months[i] << endl;
return 0;
}
这是它的输出:
4196853
28
0
0
383843232
-1082535160
54
4196784
4195939
0
30
31
我不知道为什么会这样,请让我知道我做错了什么。老实说,我可能会放弃数组并坚持使用 vector ...
谢谢。
最佳答案
在
int sep, apr, jun, nov = 30;
只有 nov
被初始化。应该是
int sep = 30, apr = 30, jun = 30, nov = 30;
关于c++ - 使用先前定义的变量初始化一个常量大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566335/