bas*_*ibe 2 c c++ language-features operator-keyword
简单来说就是
&someObject->someAttribute.someMember;
Run Code Online (Sandbox Code Playgroud)
相当于
&(someObject->someAttribute.someMember);
Run Code Online (Sandbox Code Playgroud)
要么
(&someObject)->someAttribute.someMember;
Run Code Online (Sandbox Code Playgroud)
要么
(&(someObject->someAttribute)).someMember;
Run Code Online (Sandbox Code Playgroud)
或者你真的应该在那里放置明确的括号以确保安全吗?
Jam*_*lis 10
它相当于:
&((someObject->someAttribute).someMember)
Run Code Online (Sandbox Code Playgroud)
在->与.具有相同的优先级是左结合.一元 - &具有较低的优先权.
如果你有非常复杂的表达式,那么你当然应该用括号分组并澄清你的代码.但这并不是特别复杂; 在C和C++中看到这样的代码是很常见的.