您的位置:首页 > 编程语言 > C语言/C++

C语言运算符优先级

2016-04-17 21:16 351 查看
一共有十五个优先级:



1 () [] . ->

2 ! ~ -(负号) ++ – &(取变量地址)* (type)(强制类型) sizeof

3 * / %

4 + -

5 >> <<

6 > >= < <=

7 == !=

8 &

9 ^

10 |

11 &&

12 ||

13 ?:

14 = += -= *= /= %= |= ^= &= >>= <<=

15 ,

就着多吧 结合性:2 13 14 是从右至左 其他都是 从左至右有问题可以在交流的。

一个不错的记忆口诀:

括号成员第一; //括号运算符 成员运算符. ->

全体单目第二; //所有的单目运算符比如++、 –、 +(正)、 -(负) 、指针运算*、&

乘除余三,加减四; //这个”余”是指取余运算即%

移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等

等于(与)不等排第七; //即== 和!=

位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)

“三分天下”八九十;

逻辑或跟与; //逻辑运算符:|| 和 &&

十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)

条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和”,”高

逗号运算级最低! //逗号运算符优先级最低

#include<stdio.h>

int main(void)
{
int a, x;
for (a = 0, x = 0; a <= 1 && !x++;)
{
a++;
}
printf("%d,%d\n", a, x);
return 0;
}


运算结果为1,2

#include<stdio.h>

int main(void)
{
int a,x;
for(a=0,x=0; a<=1 && !x++; a++)
{
a++;
}
printf("%d,%d\n",a,x);
return 0;
}


结果为2,1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: