c++ - 如果参数很复杂,* 和 & 运算符的作用是什么?

标签 c++ c language-features operator-keyword

简单来说就是

&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/

相关文章:

c++ - 定位函数的函数定义

c - 在结构中使用指针

C添加已由函数初始化的结构覆盖原始结构

php - php的整体设计理念是什么?

c# - 如何声明 C# 记录类型?

firefox - Firebug 有哪些 Firefox 没有内置的独特功能?

c# - 将 C# 类对象传入和传出 C++ DLL 类

c++ - 在另一个 vector 中搜索一个 vector

c - 从 C 中的位图中读取 BGR 颜色

c++ - qDeleteAll 和 new[]