简单来说就是
&someObject->someAttribute.someMember;
相当于
&(someObject->someAttribute.someMember);
或
(&someObject)->someAttribute.someMember;
或
(&(someObject->someAttribute)).someMember;
或者为了安全起见,您真的应该在此处放置明确的括号吗?
最佳答案
相当于:
&((someObject->someAttribute).someMember)
->
和 .
具有相同的优先级并且是左关联的。一元-&
的优先级较低。
如果您有非常复杂的表达式,那么您当然应该使用括号来对事物进行分组并阐明您的代码。不过,这并不是特别复杂;在 C 和 C++ 中看到这样的代码是很常见的。
关于c++ - 如果参数很复杂,* 和 & 运算符的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788135/