刚学没多久,有错的评论或私信我,以及时改正。
从高到低 (有括号先算括号) |
---|
逻辑非 ! , 负号 - |
乘,除,求余 * / % |
加,减 + - |
按位左移 << , 右移 >> |
大于 小于等 > , >= , < , <= |
等于不等于 ==, != |
按位与 & |
按位异或 ^ |
按位或 (一个竖杠,这里打不出来) |
逻辑与 && |
逻辑或 (两个竖杠,这里打不出来) |
三目 ? : |
赋值 = |
例如:int a=3 ,b=2,c=1;
1. 表达式 c == a>b ? a : b ;的值。
大于号的优先级最高,所以先判断a>b(为true得1),
==符的优先级大于三目运算符所以判断c==1是否正确,
c==1为true,再由三目运算符得到a
2. 表达式 c = a>b ? a : b ;的值。
大于号的优先级最高,所以先判断a>b为true,
三目的优先级大于赋值符,先算三目运算符得到a,最后在赋值给c
3. 表达式 c == (a>b?a:b) ; 的值。
先算括号里的,表达式变成 c == a 为 false(也就是0)