C++运算符的优先级

刚学没多久,有错的评论或私信我,以及时改正。

从高到低 (有括号先算括号)
逻辑非 ! , 负号 -
乘,除,求余 * / %
加,减 + -
按位左移 << , 右移 >>
大于 小于等 > , >= , < , <=
等于不等于 ==, !=
按位与 &
按位异或 ^
按位或 (一个竖杠,这里打不出来)
逻辑与 &&
逻辑或 (两个竖杠,这里打不出来)
三目 ? :
赋值 =
  例如:int a=3 ,b=2,c=1;
  1. 表达式 c == a>b ? a : b ;的值。
   大于号的优先级最高,所以先判断a>b(true1)==符的优先级大于三目运算符所以判断c==1是否正确,
   c==1true,再由三目运算符得到a
   
  2. 表达式 c = a>b ? a : b ;的值。
  	大于号的优先级最高,所以先判断a>b为true,
  	三目的优先级大于赋值符,先算三目运算符得到a,最后在赋值给c
  
  3. 表达式 c == (a>b?a:b) ; 的值。
  	先算括号里的,表达式变成 c == a 为 false(也就是0)
发布了4 篇原创文章 · 获赞 5 · 访问量 120

猜你喜欢

转载自blog.csdn.net/cmomo99d/article/details/104776940
今日推荐