当我们在 C++ 中交换数组名称和索引(如索引[arrayname])时会发生什么? arrayname[index] 与写index[arrayname] 一样吗?两者的值(value)是多少?
最佳答案
对于内置类型,E1[E2]
的定义“(根据定义)与”*((E1) + (E2))
相同。 (引自 [expr.sub]/1)所以答案很简单:交换名称没有效果。
对于用户定义类型,E1
必须是具有重载operator[]
的类类型,因此,如果没有一些时髦的东西,您无法互换两个表达式。
关于c++ - 当我们在 C++ 中交换数组名和索引(如索引[数组名])时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70217671/