我女儿的第 12 部标准 C++ 教科书说
这对我来说是一个惊喜。我知道 Pascal 有这个符号,但是 C++ 呢?以前从来没有见过这个。我在她规定的编译器(古老的 Turbo C++ 4.5)中编写了一个快速程序,但不支持它。在 Stanley Lippman 的书中也没有找到这种语法。互联网搜索没有抛出这个。或者我没有正确搜索?
那么,这是一个有效的声明吗?
最佳答案
这是无效的,从 draft C++ standard 部分 8.3.4
Arrays 声明必须采用以下形式:
我们可以从 5.19
常量表达式部分,常量表达式的语法是:
constant-expression:
conditional-expression
这个语法不允许我们使用逗号运算符来做这样的事情:
int a[ 1, 2 ] ;
^
正如其他人所暗示的那样,因为没有从条件表达式到逗号运算符的路径。尽管如果您添加括号,我们可以使用逗号运算符,因为条件表达式允许我们访问获得
()
的主要表达式,因此以下内容是有效的:int a[ (1, 2) ] ;
^ ^
请注意,在 C++03 中,您被明确禁止在常量表达式中使用逗号运算符。
关于具有下限和上限的 C++ 数组定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27297501/