gpt4 book ai didi

具有下限和上限的 C++ 数组定义?

转载 作者:太空狗 更新时间:2023-10-29 20:24:38 25 4
gpt4 key购买 nike

我女儿的第 12 个标准 C++ 教科书是这样说的

the notation of an array can (also) be given as follows: Array name [lower bound L, upper bound U]

这对我来说是个惊喜。我知道 Pascal 有这种表示法,但是 C++?以前从未见过这个。我在她指定的编译器(古老的 Turbo C++ 4.5)中写了一个快速程序,但不支持它。在 Stanley Lippman 的书中也没有找到这种语法。上网查也没有抛出这个。还是我没有正确搜索?

那么,这是一个有效的声明吗?

最佳答案

这是无效的,来自 draft C++ standard 8.3.4 Arrays 部分声明必须采用以下形式:

D1 [ constant-expressionopt] attribute-specifier-seqopt

我们可以从 5.19 常量表达式 常量表达式 的语法是:

constant-expression:
conditional-expression

这个语法不允许我们使用逗号运算符来做这样的事情:

int a[ 1, 2 ] ;
^

正如其他人所暗示的那样,因为没有从条件表达式逗号运算符 的路径。尽管如果您添加括号,我们可以得到逗号运算符,因为条件表达式允许我们得到主要表达式,这让我们() 所以以下内容是有效的:

int a[ (1, 2) ] ;
^ ^

请注意,在 C++03 中,您被明确禁止在常量表达式中使用逗号运算符。

关于具有下限和上限的 C++ 数组定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com