C/C++ 中,*、->、前后 ++ 和 & 这些运算符的优先级和结合性

在 C/C++ 中,*->、前后 ++& 这些运算符的优先级和结合性是理解代码行为的关键。下面我将详细梳理这些运算符的优先级、结合性以及如何正确理解它们的组合。

1. 优先级和结合性

我们从优先级表上整理出这些运算符的优先级顺序:

  • *(解引用运算符)和 &(取地址运算符):优先级比较高。
  • ->(成员访问运算符)优先级高于前后 ++ 运算符。
  • 前后 ++ 运算符的优先级比较低,且 ++ 运算符的结合性是从右到左的。

运算符的优先级和结合性总结:

  • *(解引用)和 &(取地址)优先级:高于 ++->,它们在指针操作中涉及到获取地址或访问指向对象的值。

  • ++ 运算符(前++ 和 后++):优先级较低,后++i++)的优先级高于 前++++i)运算符,但它们的结合性是从右到左的。

  • -> 运算符:优先级高于 ++,但是低于 &*

2. 不同组合时的考虑

组合1: *++ptr

假设 ptr 是一个指针,*++ 的组合:

  • ++ptr 先执行,这意味着指针会先增加 1。
  • 然后 * 对增加后的指针进行解引用,返回指针所指向的新地址的值。

执行顺序:

  1. ptr++(增加指针地址)
  2. *ptr(对增加后的指针解引用)
int arr[] = {
   1, 2, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值