列表說我有一個數組初始化多維數組的部分與常數用C
int A[2][2];
,我想,象這樣
A[0] = {
1,
2
};
常量列表僅初始化第一行
不幸的是編譯器返回。
錯誤:
expected expression before '{' token_.
這個例子雖然小,想大。我知道這樣做有一些遲鈍的方式,但如果沒有有效的解決方案,這會讓我震驚。
列表說我有一個數組初始化多維數組的部分與常數用C
int A[2][2];
,我想,象這樣
A[0] = {
1,
2
};
常量列表僅初始化第一行
不幸的是編譯器返回。
錯誤:
expected expression before '{' token_.
這個例子雖然小,想大。我知道這樣做有一些遲鈍的方式,但如果沒有有效的解決方案,這會讓我震驚。
初始值設定程序不起作用。你應該在聲明的時候初始化爲
int A[2][2] = { {1, 2} }; // Rest elements will be initialized to 0
或使用指定的初始化
int A[2][2] = { [0] = {1, 2} }; // C99 and later
完美無缺,謝謝大家。 – Bob
你在做什麼不是初始化(這是做僅的變量聲明時)但分配。一個數組是一個不可修改的左值,這意味着它有一個地址但不能被賦值。
可以顯式地設置僅僅是第一元件如下:
int A[2][2] = {{1, 2}};
當初始化一個數組或結構,在一個初始化任何未指定的值設置爲0。
您沒有初始化;你想分配,你不能做在C數組賦值
要初始化,這將是該變量定義的一部分:
int A[2][2] = { { 1, 2 } };
這將初始化矩陣的第一行明確地將剩下的作爲零。
這不是初始化。初始化將是'int A [2] [2] = {{1,2}};' – EOF
您不能**將數組**分配給數組。並且在C中沒有部分初始化_ – Olaf
@EOF不是嗎?如果沒有賦值,數組就會有垃圾值,所以無論數組的初始化在哪裏,都會導致我相信第一個賦值。 – Bob