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 位只比赋值运算符和”,”高
逗号运算级最低! //逗号运算符优先级最低
运算结果为1,2
结果为2,1
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
相关文章推荐
- c++ 下的多重继承虚函数调用问题
- C语言-大整数四则运算
- C++: std::string 与 Unicode 如何结合?
- SM2算法第一篇:ECC加密算法
- C++动态规划
- 棋盘覆盖问题
- C++类型转换运算符之const_cast<newtype>(expression)
- C语言隐式数据类型转换
- VPTR和VTABLE和构造函数与继承
- c/c++中求取字符串,数组,一块内存的长度
- 关于循环重复数字的相加 C语言越来越好玩
- C++中的哑类
- 初探C++类模版学习笔记
- thrift C++做server, C++,python, java做Client例子
- 巩固C语言(八)----进程和线程的区别和练习 & 线程编程
- 学习OpenCV——Kmean(C++)
- 大型分布式C++框架《四:netio之请求包中转站 上》
- sizeof陷阱
- 程序编译链接运行深入剖析
- MFC发送邮件C语言版