[英]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.