zhangjinxuan 发表于 2023-9-9 15:46:44

C++语法特性?

本帖最后由 zhangjinxuan 于 2023-12-13 11:33 编辑







isdkz 发表于 2023-9-9 15:46:52

1. 这是 C++ 的语法特性,被称为“数组下标越界表达式”,在各个标准的 C++ 中都支持。但是,这种用法并不被建议使用,因为它容易让代码变得难以理解和维护。



2. 该语法与 a 等价,但是不建议使用,因为它会让代码变得难以理解和维护。



3. 在一些特殊情况下,如在模板元编程中,可能会使用这种语法。但是,在普通的代码中,使用这种语法可能会导致歧义和错误的结果,因此不建议使用。

陶远航 发表于 2023-9-9 15:47:07

这是一个很有趣的问题!在 C++ 中,a 和 b 是等价的,这涉及到C++中数组访问的运算符重载规则。

1. 是,这是C++的语法特性。C++语言的规范允许对数组元素进行乱序访问。实际上,a 和 b 都可以编译通过,并且在各个标准的C++中都得到了支持,包括C++98、C++11、C++14、C++17等。

2. 这两种形式的访问是等价的,也就是说 a 和 b 的结果是相同的。所以 114514 和 a 在语义上是等价的,都是访问数组 a 的第 114514 个元素。

3. 使用这种形式时,虽然不会产生语法错误,但可能会导致代码的可读性下降,增加了代码的混淆性。这种用法并不常见,不被推荐使用,因为它容易让人困惑和误解代码的意图。因此,在正常情况下,建议仍然使用通常的数组访问方式,即 a 表示访问数组 a 的第 b 个元素。

总结起来,C++中允许乱序访问数组元素,但并不推荐使用这种写法。应该遵循常见的a形式,以保持代码的可读性和清晰性。
如果问题已经解决,请设置最佳答案
页: [1]
查看完整版本: C++语法特性?