回答
double myArray[3][12] = {0};
,或者,如果你想避免gcc的警告 “失踪各地初始括号”(警告似乎与-Wall
或者更具体地说-Wmissing-braces
)
double myArray[3][12] = {{0}};
我认为这将是
double myArray[3][12] = {0}
如果你想用零初始化,您执行以下操作:
double myArray[3][12] = { 0 };
如果你要填写实际值,你可以嵌套括号:
double myArray[3][3] = { { 0.1, 0.2, 0.3 }, { 1.1, 1.2, 1.3 }, { 2.1, 2.2, 2.3 } };
+1指出如何初始化所有内容......但为什么你缩短了数组? :P – pmg 2009-11-06 16:48:10
我缩短了数组,因为我不想输入十二组数字。 – 2009-11-06 17:15:26
您可以使用
double myArray[3][12] = { 0 };
或
double myArray[3][12];
memset(myArray, 0, sizeof(double) * 3 * 12);
pmg' s方法是正确的,但是,请注意,
double myArray[3][12] = {{}};
会给出相同的结果。
另外,请记住,
double myArray[3][12] = {{some_number}};
您预期的那样,当some_number为零才会工作。
例如,如果我说
double myArray[2][3] = {{3.1}};
数组不会是充满3.1的,而不是这将是
3.1 0.0 0.0
0.0 0.0 0.0
(第一个元素是国内唯一一家集其余设置为零)
This question (c initialization of a normal array with one default value) has more information
空初始化器无效C(我相信它是有效的C++)。 – pmg 2012-04-25 08:15:49
pmg的方法效果最好,因为它的工作原理是,如果你部分初始化任何数组,其余部分的默认值为零。否则,你可以声明数组为全局变量,当未初始化时,数组元素将自动设置为默认值(取决于编译器)为零。
@JSBգչոգչ想出了用实际值初始化的语法,它与问题的标题完全匹配,这使我在这里(我对索引的顺序感兴趣)。
myArray[3][2] = { { 0.1, 0.2 }, { 1.1, 1.2 }, { 2.1, 2.2 } };
第一个索引是行索引是最慢的索引。这被称为C顺序而不是F(Fortran)顺序。
- 1. 数组初始化语法时没有在声明中
- 2. 如何用预编译器初始化一个数组在C编程语言
- 3. c声明和初始化
- 4. 无法声明/初始化CGPoint数组
- 5. 声明和初始化三维数组
- 6. 初始化课外数组声明
- 7. Java数组初始化后声明
- 8. 运行时初始化2d数组?
- 9. C/C++编程语言的结构体初始化?
- 10. 初始化在声明
- 11. 在声明之外初始化C数组?
- 12. C++:变量声明初始化顺序
- 13. 声明和初始化用指针的数组,以阵列
- 14. c#数组声明语法vs C++数组声明语法
- 15. 在编译时初始化数组
- 16. 重新初始化C语言指针
- 17. Vb.net声明和初始化
- 18. 初始化2d动态数组时读取访问冲突C++
- 19. 同时声明和初始化结构/类的数组
- 20. (函数(){})()声明/初始化JavaScript函数
- 21. 初始化数组时初始化System.AccessViolationException
- 22. 数组初始化语法
- 23. 如何在C++中声明和初始化一个2d int向量?
- 24. 初始化静态final变量声明与初始化在Application.OnCreate()
- 25. C#语言枚举声明
- 26. C++如何声明一个临时未命名的,未初始化的数组?
- 27. 在c - tic tac toe游戏中初始化2d char数组
- 28. 在C中初始化2D/3D数组的速记方法?
- 29. 声明和初始化具有未知大小2D阵列
- 30. 在VB.NET中声明并初始化一个字符串数组
如果使用段落代码块(行首的四个空格),则会获得语法高亮度,如果使用内嵌块(反向),则不会使用该语法。 – 2009-11-06 16:43:07
谢谢,编辑。当我回答时,我处于反拨模式:) – pmg 2009-11-06 16:44:23
好的非常感谢! – 2009-11-06 18:06:27