C语言操作符优先级的问题:
优先级由高到低:
1.函数符号(),数组下标[], 下标 .,成员符号->
2.单目运算符,!,~,++,--,*,&,sizeof 结合性:右到左
3.算数运算符
4正负+-。
5.移位运算符<<,>>
6.关系>,<,==,>=,<=,!=
7.逻辑运算符,首先&,^,,|,其次&&,||
8.三目运算符 ?:
1.关系运算符优先于逻辑运算符。
2.移位运算符介于算数运算符和比较运算符之间.1+1<<1==3 true。
3.除了单目运算符外,算数运算符优先级最高。
右结合性:*,&,++,=等
所以*p++是先进行p++,然后*p; 可验证*++p;
(*p)++,先取*p,然后++;