我女儿的第 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/

10-13 01:19