這下面的代碼不能編譯:無法推斷出從初始值設定爲界限多維數組
int main() {
int a[][] = { { 0, 1 },
{ 2, 3 } };
}
產生的錯誤消息是
error: declaration of 'a' as multidimensional array must have bounds for all dimensions except the first
int a[][] = { { 0, 1 },
^
這是由標準規定?如果是這樣,爲什麼呢?我認爲在這裏推斷界限會很容易。
您是否嘗試過用'一[] [2]'? –
簡單,如果你只有'int's考慮。如果你對它有更多的瞭解,看起來並不那麼簡單:內部大括號可以忽略,如果不是,可以調用構造函數,可以執行轉換等等。因此,對於編譯器來說,數組維度根本就不是明顯。另外,普通數組是邪惡的,維度n的多維數組是pow(evil,n)。 ;) – Drop
@Drop我想你已經明白了:) – Lingxi