我也遇到過,當我寫代碼很奇怪的問題,這是我的C++代碼:很奇怪的C++錯誤
#include <iostream>
using namespace std;
int main()
{
int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
例如,如果我的qnum輸入2和5系列[3] qnum的價值將在代碼。此問題的最後一行覆蓋將只有當一系列的輸入3.新的唯一的解決辦法是增加發生「靜態」屬性qnum,就像這樣:
#include <iostream>
using namespace std;
int main()
{
static int qnum;
cin >> qnum;
int series[3];
cin >> series[3];
cout << qnum;
}
有什麼建議嗎?
您可以從0開始計數。因此,串聯的最後一個有效索引是[2] –
您應該在啓用所有警告的情況下編譯您的代碼。每個體面的編譯器都應該警告這樣的事情。 – pmr
@pmr:我想,取決於你對「體面」編譯器的定義。 GCC沒有'-Wall -Wextra'(儘管也許有一些其他更隱蔽的標誌可以檢測到這一點)。 –