c++ - 使用先前定义的变量初始化一个常量大小的数组

标签 c++ arrays

我尝试创建一个大小为 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/

相关文章:

c++ - CLR 干扰 C++ STD?

C++ std::queue push pop 两个不同的对象获取第一个对象

c++ - istream::operator>> 或 istream::get

java - 使用套接字发送对象 - JAVA

c++ - 在 C++17 中初始化后可以更改内联变量吗?

c++ - 是否可以在 C++ 中进行多态成员重载?

java - SWIG从String作为Java中的String数组获取returntype

javascript - 如何填写数组中不存在的边界之间的日期?

python - 从 numpy 数组中选择 'some' 个随机点

c++ - 如何将字符串的第一个字符传递给char?