我通常会像这样声明和初始化整数数组:
int a[3] = { 1, 2, 3}; // declares an array of 3 integers
但是今天我想到也将列表包装在括号中,就像这样:
int a[3] = ( { 1, 2, 3} ); // gives compile time error
其中产生了以下编译器错误:
expected ';' before '}' token
invalid initializer
自然地,通常没有理由将列表用括号括起来,但是现在我很好奇-为什么我们不能在这里使用括号?
最佳答案
这根本不是有效的语法。这是C99标准中语法的相关部分:
[6.7]
init-declarator:
declarator
declarator = initializer
[6.7.8]
initializer:
assignment-expression
{ initializer-list }
{ initializer-list , }