【发布时间】:2022-01-10 00:28:50
【问题描述】:
当我们在 C++ 中像 index[arrayname] 这样交换数组名和索引时会发生什么? arrayname[index] 和写 index[arrayname] 一样吗?两者的价值是什么?
【问题讨论】:
-
@JohnKugelman 不。这一点在 C 和 C++ 中都是一样的。
-
如果数组实际上是
std::vector、std::array或其他类似数组且运算符重载的类,则它们不能被交换。这个技巧不能很好地转化为 C++。 -
@JohnKugelman 操作员说他们有一个数组,而不是一个向量。这仅适用于数组,所以他们一定一直在使用数组。
-
我得到的是 C++ 的答案应该是这样的:“如果你有一个普通数组,那么
array[index]和index[array]是可以互换的。但是,这个技巧没有”对于重载operator[]的其他类似数组的类型(如std::array或std::vector),通常无法正常工作。”当然应该有一堆解释。 -
我们总是告诉人们 C 和 C++ 是不同的语言。我们不应该将这个 C++ 问题作为 C 问题的副本来结束。答案不同。