C++符号优先级

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符条件运算符赋值运算符
基本的优先级需要记住:
指针最优>单目运算>双目运算(如正负号)
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。
printf计算参数时是从右往左压栈的。
 
运算所需变量为一个的运算符叫单目运算符,又叫一元运算符
逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++, --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】
运算所需变量为两个的运算符叫做双目运算符,例如+,-,*,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
运算所需变量为三个的运算符叫做三目运算符,只有条件表达式【?:】
 
 
eg1:
int a = 4;
//a += (a++);//输出9
//a += (++a);//输出10
//(a++) += a;//错误,表达式必须为可修改的左值
//(++a) += a;//输出10
(++a) += (a++);//输出11
cout << a<<endl;

  

posted @ 2015-10-09 20:09  jx_yangbo  阅读(802)  评论(0编辑  收藏  举报