优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
基本的优先级需要记住:
指针最优>单目运算>双目运算(如正负号)
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。
printf计算参数时是从右往左压栈的。
运算所需变量为一个的运算符叫单目运算符,又叫一元运算符.
运算所需变量为两个的运算符叫做双目运算符,例如+,-,*,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
eg1:
int a = 4; //a += (a++);//输出9 //a += (++a);//输出10 //(a++) += a;//错误,表达式必须为可修改的左值 //(++a) += a;//输出10 (++a) += (a++);//输出11 cout << a<<endl;