鱼C论坛

 找回密码
 立即注册
查看: 1030|回复: 2

[已解决]C++语法特性?

[复制链接]
发表于 2023-9-9 15:46:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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







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



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



3. 在一些特殊情况下,如在模板元编程中,可能会使用这种语法。但是,在普通的代码中,使用这种语法可能会导致歧义和错误的结果,因此不建议使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-9 15:46:52 | 显示全部楼层    本楼为最佳答案   
1. 这是 C++ 的语法特性,被称为“数组下标越界表达式”,在各个标准的 C++ 中都支持。但是,这种用法并不被建议使用,因为它容易让代码变得难以理解和维护。



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



3. 在一些特殊情况下,如在模板元编程中,可能会使用这种语法。但是,在普通的代码中,使用这种语法可能会导致歧义和错误的结果,因此不建议使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-9 15:47:07 | 显示全部楼层
这是一个很有趣的问题!在 C++ 中,[b]ab[a] 是等价的,这涉及到C++中数组访问的运算符重载规则。

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

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

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

总结起来,C++中允许乱序访问数组元素,但并不推荐使用这种写法。应该遵循常见的[b]a形式,以保持代码的可读性和清晰性。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表