我仍在学习C,但是当我尝试使用2d数组时出现错误:
/Users/harry/Dropbox/C/Practise/test_1/main.c:157:9: error: expected expression int[,] numberGrid = { ^ /Users/harry/Dropbox/C/Practise/test_1/main.c:158:9: warning: too many braces around scalar initializer [-Wmany-braces-around-scalar-init] {1, 2, 3 },
我的代码是:
int main() {
int[,] numberGrid = {
{1, 2, 3 },
{4, 5, 6 },
{7, 8, 9 }
};
printf("%d\n", numberGrid[1, 1]);
}
答案 0 :(得分:0)
如评论中所述,符号int[,] numberGrid = { …
根本不是C。
如果您写过:
int numberGrid[3][3] = {
{1, 2, 3 },
{4, 5, 6 },
{7, 8, 9 }
};
或:
int numberGrid[][3] = {
{1, 2, 3 },
{4, 5, 6 },
{7, 8, 9 }
};
您将能够使数组初始化程序进行编译。
然后,您需要修复printf()
才能打印数组元素。逗号在C语言的下标中没有用(出于大多数实际目的,下标中“从不” —如果您尽力而为,可以发明例外,但您不应该正常编写此类代码)。
您可以写:
printf("%d\n", numberGrid[1][1]);
以打印5
。按照书面说明(printf("%d\n", numberGrid[1,1]);
,您正在将地址打印为带符号的十进制整数,这不能保证正常工作(64位计算机上的数据截断等)。