【转】C语言中的符号优先级
转自: http://blog.csdn.net/huangblog/article/details/8271791
虽然在日常使用中,添加括号来明确规定运算符优先级是一种常识,但毕竟学校考试就喜欢考这些。没办法了,改变自己比改变世界更容易。

说明:
同一优先级的运算符,运算次序由结合方向所决定。
简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
总结:
括号,和结构体的访问 最高
逗号表达式最低,其余的根据使用习惯差别不大
C语言运算符优先级
|
优先级 |
运算符 |
名称或含义 |
使用形式 |
结合方向 |
说明 |
|
1 |
[] |
数组下标 |
数组名[常量表达式] |
左到右 |
-- |
|
() |
圆括号 |
(表达式)/函数名(形参表) |
-- |
||
|
. |
成员选择(对象) |
对象.成员名 |
-- |
||
|
-> |
成员选择(指针) |
对象指针->成员名 |
-- |
||
|
2 |
- |
负号运算符 |
-表达式 |
右到左 |
单目运算符 |
|
~ |
按位取反运算符 |
~表达式 |
|||
|
++ |
自增运算符 |
++变量名/变量名++ |
|||
|
-- |
自减运算符 |
--变量名/变量名-- |
|||
|
* |
取值运算符 |
*指针变量 |
|||
|
& |
取地址运算符 |
&变量名 |
|||
|
! |
逻辑非运算符 |
!表达式 |
|||
|
(类型) |
强制类型转换 |
(数据类型)表达式 |
-- |
||
|
sizeof |
长度运算符 |
sizeof(表达式) |
-- |
||
|
3 |
/ |
除 |
表达式/表达式 |
左到右 |
双目运算符 |
|
* |
乘 |
表达式*表达式 |
|||
|
% |
余数(取模) |
整型表达式%整型表达式 |
|||
|
4 |
+ |
加 |
表达式+表达式 |
左到右 |
双目运算符 |
|
- |
减 |
表达式-表达式 |
|||
|
5 |
<< |
左移 |
变量<<表达式 |
左到右 |
双目运算符 |
|
>> |
右移 |
变量>>表达式 |
|||
|
6 |
> |
大于 |
表达式>表达式 |
左到右 |
双目运算符 |
|
>= |
大于等于 |
表达式>=表达式 |
|||
|
< |
小于 |
表达式<表达式 |
|||
|
<= |
小于等于 |
表达式<=表达式 |
|||
|
7 |
== |
等于 |
表达式==表达式 |
左到右 |
双目运算符 |
|
!= |
不等于 |
表达式!= 表达式 |
|||
|
8 |
& |
按位与 |
表达式&表达式 |
左到右 |
双目运算符 |
|
9 |
^ |
按位异或 |
表达式^表达式 |
左到右 |
双目运算符 |
|
10 |
| |
按位或 |
表达式|表达式 |
左到右 |
双目运算符 |
|
11 |
&& |
逻辑与 |
表达式&&表达式 |
左到右 |
双目运算符 |
|
12 |
|| |
逻辑或 |
表达式||表达式 |
左到右 |
双目运算符 |
|
13 |
?: |
条件运算符 |
表达式1? 表达式2: 表达式3 |
右到左 |
三目运算符 |
|
14 |
= |
赋值运算符 |
变量=表达式 |
右到左 |
-- |
|
/= |
除后赋值 |
变量/=表达式 |
-- |
||
|
*= |
乘后赋值 |
变量*=表达式 |
-- |
||
|
%= |
取模后赋值 |
变量%=表达式 |
-- |
||
|
+= |
加后赋值 |
变量+=表达式 |
-- |
||
|
-= |
减后赋值 |
变量-=表达式 |
-- |
||
|
<<= |
左移后赋值 |
变量<<=表达式 |
-- |
||
|
>>= |
右移后赋值 |
变量>>=表达式 |
-- |
||
|
&= |
按位与后赋值 |
变量&=表达式 |
-- |
||
|
^= |
按位异或后赋值 |
变量^=表达式 |
-- |
||
|
|= |
按位或后赋值 |
变量|=表达式 |
-- |
||
|
15 |
, |
逗号运算符 |
表达式,表达式,… |
左到右 |
-- |
【转】C语言中的符号优先级的更多相关文章
- C语言中操作符的优先级大全
C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. OperatorsAssocia ...
- 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】
原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创] 第一题 #include<stdio.h> int main() { unsigned int a=6; i ...
- 《C语言深度剖析》学习笔记----C语言中的符号
本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...
- C语言中 有符号数、无符号数、整数溢出 (转)
#include<stdio.h> void main() { int l=-1; unsigned int c=135; printf("%u\n",l+c); } ...
- C语言中的符号重载
摘自<C专家编程>第二章37页 C语言中符号的重载 符号 意义 static 在函数内部,表示该变量的值在各个调用间一直保持延续性在函数这一级,表示 ...
- C语言中的符号总结
1.注释符号 //和/* ...*/ 2.续行符号 \ 3.转义符号 常用:\ ...
- c/c++排坑(2) -- c语言中的符号重载
所谓的符号重载就是在不同的上下文环境里有不同的意义.甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因. 本章内容摘自<c专家编程>P37. 大家 ...
- C语言中的 @ 符号是什么意思?
Global Variable Address Modifier (@address)You can assign global variables to specific addresses wit ...
- C语言中无符号与有符号问题
unsigned char a[5] = { 12,36,96,128,182 }; a[]范围为0~256. 数组中数都有效. char a[5] = { 12,36,96,128,182 }; a ...
随机推荐
- Shell基础 - Bash基础功能
历史命令 history选项: -c 清空历史命令 -w 立即保存历史命令Linux 下输入过的历史命令,都会保存在根目录下的:~/root/.bash_history 文件中默认保存 1000 条, ...
- 【CF997E】Good Subsegments (线段树+单调栈)
Description 原题链接 给你一个长度为\(n\)的排列\(~P\),定义一段子区间是好的,当且仅当这个子区间内的值构成了连续的一段.例如对于排列\(\{1,3,2 \}\),\([1, 1] ...
- 平衡树splay学习笔记#2
讲一下另外的所有操作(指的是普通平衡树中的其他操作) 前一篇的学习笔记连接:[传送门],结尾会带上完整的代码. 操作1,pushup操作 之前学习过线段树,都知道子节点的信息需要更新到父亲节点上. 因 ...
- Vue中的计算属性与$watch
计算属性:在模板中绑定表达式是非常便利的,但是他们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么vue.js将绑定表达式限制为一个表达式. ...
- Nginx+Tomcat-cluster构建
-----------ReProxy-------------------------Client-----------192.168.56.202 nginx 192.168.56.200 Tomc ...
- [HAOI2008]圆上的整点(数论)
题目的所求可以转化为: \(y^2=r^2-x^2\)(其中r,x,y均为整数) 即\(y^2=(r-x)(r+x)\)(其中\(r,x,y\)均为整数) 不妨设\((r-x)=d*u\)------ ...
- numpy 多维数组及数组操作
NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...
- Java String与Stringbuffer
String 与其它类型的转换,e.g. BigInteger Stringbuffer 诸多函数,replace…… String 不能修改,Stringbuffer 可以修改, 应避免以下的操作: ...
- 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)
绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...
- POJ 3678 Katu Puzzle (2-SAT)
Katu Puzzle Time Limit: 1000MS ...