簡體   English   中英

用先前定義的變量初始化一個恆定大小的數組

[英]Initialize a constant size array with previously defined variables

我嘗試創建一個簡單的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

我不知道為什么要這樣做,請讓我知道我做錯了什么。 老實說,我可能只是放棄數組而堅持​​使用向量。

謝謝。

int sep, apr, jun, nov = 30;

nov被初始化。 它應該是

int sep = 30, apr = 30, jun = 30, nov = 30;

int sep, apr, jun, nov = 30; 應該是int sep = 30 , apr=30, jun = 30, nov = 30;

int jan, mar, may, jul, aug, oct, dec = 31; 應該為int jan=31, mar=31, may=31, jul=31, aug=31, oct=31, dec = 31;

數組將使用未初始化的變量進行初始化,並輸出它們具有的垃圾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM