(ptr + i) - > Func()和&ptr [i] .Func()之间有什么区别吗?

Ser*_*e B 2 c++ performance hpc

或者两者都是平等的?ptr是一个指向结构数组的指针.

UPD:谢谢大家的回复.对不起,我拼错了语法.我试图来比较是(ptr + i)->Func()VS (&ptr[i])->Func().我与&运算符混淆,因为它应该返回变量的地址.是否会导致再次采取该地址的操作?

Ant*_*vin 8

(ptr + i)->Func()相当于ptr[i].Func().

并且由于运算符优先级,&ptr[i].Func()相当于&(ptr[i].Func()),即它需要返回值的地址Func().

  • @black所以它们是等价的,它是一种可交换的关系 (3认同)