总的来说右结合的运算符有以下几个:
1、增强运算符
2、取地址符号,取值运算符;逻辑运算符,包括取反运算符;负号运算符,强制转化运算符,sizeof 和 ?
优先级表:
https://blog.youkuaiyun.com/reasonss/article/details/51886296
优先级规律这个博客里面有
下面看看这个代码:
double tax = 12.567;
double y = (int) (tax*100) / 100.0;
int x = (int) (tax*100) /100;
结果是x 为12,而 y是12.567
因为()是强制类型转换符,这个符号的优先级比乘除的高,所以先执行的是括号内的乘,然后是类型转换,然后是除。
a = (int) (father->age);
a = (int) father -> age;
//这两个语句是等效的,因为对象指针选择符->优先级比强制类型转换符的优先级高。
右结合与运算顺序无关
右结合只影响了右结合的部分,并不影响整体的运算顺序,见下例:
https://blog.youkuaiyun.com/dt13191/article/details/70888898