这可能看起来很简单,但我在搜索时似乎无法找到它。
我只是想知道这两种初始化方法和数组是否相同,还是有一种首选的方法呢? ANSI C标准对此有何看法?
int a[3] = {1, 2, 3};
和...
int a[] = {1, 2, 3};
答案 0 :(得分:7)
int a[3] = {1, 2, 3};
是O.K。
但是int [] = {1, 2, 3};
肯定是语法错误。
但如果您的问题与int a[] = {1, 2, 3};
有关,那么这是一个有效的陈述。
答案 1 :(得分:5)
第一个可以工作,但第二个会产生语法错误。如果你使用......像这样:
int a[5]={1};
其他4个整数将初始化为0。
答案 2 :(得分:1)
当您希望在阵列中有更多空间并且只想在声明中设置其中一些时,通常会使用添加数组的大小。在其他情况下,我个人更喜欢第二种表示法,因为它可以防止由于大小较小而占用更多大小或编译错误,这只是因为你的数组大小错误。 如果你有一个大小的const值,并且你使用它几次,那么第一个符号将更可靠。 所以你的答案取决于你的计划。
int a[CONST_SIZE] = {1,2,3};
int a[] = {1, 2, 3};
答案 3 :(得分:1)
我认为你第二个做错了!但如果第二个是:
int b[] = {1, 2, 3};
两条线的结果完全相同。
两个数组的数组大小为3 * sizeof(int)
这是您决定使用哪条线。第一行的优点是,您可以轻松地查看数组大小而无需计算括号中的元素,但它在源代码文件中使用了1个字节; - )