來自C++文檔http://www.cplusplus.com/doc/tutorial/arrays/
要定義一個這樣的數組,變量b必須是常量。
如何在C++中定義數組
這裏就是我下摹運行++(Ubuntu的/ Linaro的4.6.3-1ubuntu5)4.6.3
int main(){
int a = 10;
int b[a];
for(int i = 0; i < 10; i++){
cout << b[i] << endl;
}
return 0;
}
變量不是恆定的,我沒有錯誤。我可以問什麼版本的g ++會接受這種數組定義?
那麼,在這種情況下,我希望編譯器優化'a',以便事實上用一個常量進行初始化。嘗試用'rand()/ 100000'初始化,看看會發生什麼('#include') –
@MattPhillips懷疑,優化器在此之後就會出現。 –
@MattPhillips:優化不應該是相關的。語言規則需要一個*常量表達式*,並不僅僅意味着編譯器能夠在編譯時計算出如何評估的內容。 –