C 语言运算符优先级(记忆口诀)


优先级


运算符


名称或含义


使用形式


结合方向


说明


1


[]


数组下标


数组名[常量表达式]


左到右

 

()


圆括号


(表达式)/函数名(形參表)

 

.


成员选择(对象)


对象.成员名

 

->


成员选择(指针)


对象指针->成员名

 

2


-


负号运算符


-表达式


右到左


单目运算符


(类型)


强制类型转换


(数据类型)表达式

 

++


自增运算符


++变量名/变量名++


单目运算符


--


自减运算符


--变量名/变量名--


单目运算符


*


取值运算符


*指针变量


单目运算符


&


取地址运算符


&变量名


单目运算符


!


逻辑非运算符


!表达式


单目运算符


~


按位取反运算符


~表达式


单目运算符


sizeof


长度运算符


sizeof(表达式)

 

3


/



表达式/表达式


左到右


双目运算符


*



表达式*表达式


双目运算符


%


余数(取模)


整型表达式/整型表达式


双目运算符


4


+



表达式+表达式


左到右


双目运算符


-



表达式-表达式


双目运算符


5


<<


左移


变量<<表达式


左到右


双目运算符


>>


右移


变量>>表达式


双目运算符


6


>


大于


表达式>表达式


左到右


双目运算符


>=


大于等于


表达式>=表达式


双目运算符


<


小于


表达式<表达式


双目运算符


<=


小于等于


表达式<=表达式


双目运算符


7


==


等于


表达式==表达式


左到右


双目运算符


!=


不等于


表达式!= 表达式


双目运算符


8


&


按位与


表达式&表达式


左到右


双目运算符


9


^


按位异或


表达式^表达式


左到右


双目运算符


10


|


按位或


表达式|表达式


左到右


双目运算符


11


&&


逻辑与


表达式&&表达式


左到右


双目运算符


12


||


逻辑或


表达式||表达式


左到右


双目运算符


13


?:


条件运算符


表达式1? 表达式2: 表达式3


右到左


三目运算符


14


=


赋值运算符


变量=表达式


右到左

 

/=


除后赋值


变量/=表达式

 

*=


乘后赋值


变量*=表达式

 

%=


取模后赋值


变量%=表达式

 

+=


加后赋值


变量+=表达式

 

-=


减后赋值


变量-=表达式

 

<<=


左移后赋值


变量<<=表达式

 

>>=


右移后赋值


变量>>=表达式

 

&=


按位与后赋值


变量&=表达式

 

^=


按位异或后赋值


变量^=表达式

 

|=


按位或后赋值


变量|=表达式

 

15


,


逗号运算符


表达式,表达式,…


左到右


从左向右顺序运算

说明:

同一优先级的运算符。运算次序由结合方向所决定。

口诀:

括号成员第一;        //括号运算符[]() 成员运算符.  ->

全体单目第二;        //全部的单目运算符比方++、 --、 +(正)、 -(负) 、指针运算*、&乘除余三,加减四;   //这个"余"是指取余运算即%

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

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

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

"三分天下"八九十;

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

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

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

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

时间: 2024-10-07 10:02:46

C 语言运算符优先级(记忆口诀)的相关文章

运算符优先级记忆口诀及列表(转)

C语言运算符优先级和口诀 一共有十五个优先级: 同一优先级的运算符,运算次序由结合方向所决定 1   ()  []  .  ->        (括号,成员排第一) 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof       (单目运算排第二) 3   * / %         (乘除余三) 4   + -             (加减四) 5   >> <<          (移位五)

C语言运算符优先级和口诀(转)

一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   * / % 4   + - 5   >> << 6   > >= < <= 7   == != 8   & 9   ^ 10  | 11  && 12  || 13  ?: 14   =  +=  -=  *=  /=   %=  |=

C语言运算符优先级和口诀 (转)

一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   * / % 4   + - 5   >> << 6   > >= < <= 7   == != 8   & 9   ^ 10  | 11  && 12  || 13  ?: 14   =  +=  -=  *=  /=   %=  |=

java运算符优先级记忆口诀

单目乘除为关系,逻辑三目后赋值. 单目:单目运算符+ –(负数) ++ -- 等 乘除:算数单目运算符* / % + - 为:位移单目运算符<< >> 关系:关系单目运算符> < >= <= == != 逻辑:逻辑单目运算符&& || & | ^ 三目:三目单目运算符A > B ? X : Y 后:无意义,仅仅为了凑字数 赋值:赋值= 原文地址:https://www.cnblogs.com/-wanglei/p/1037061

C 语言运算符优先级

每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 +

C语言运算符优先级

C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 ++变量名/变量名++ -- 自减运算符 --变量名/变量名-- * 取值运算符 *指针变量 & 取地址运算符 &

C语言运算符优先级列表(超级详细的---转载加自己习题)

转载于:http://www.jb51.net/article/37282.htm 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算

C语言运算符优先级及结合性

今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () [] -> . 自左向右 ! ~ ++ -- - (type) * & sizeof 自右向左 * / % 自左向右 + - 自左向右 << >> 自左向右 < <= > >= 自左向右 == != 自左向右 & 自左向右 ^ 自左向右

1.枚举类型、声明指针、常量、存储类型、运算符优先级记忆

原文:1.枚举类型.声明指针.常量.存储类型.运算符优先级记忆 1.枚举类型 枚举(enumerated)类型就是指它的值为符号常量而不是字面值的类型,以下面的这种形式来声明:enum   Jar_Type {CUP,PINT,GALLON,OUART}; 这条语句声明了一个类型,称为 Jar_Type.而enum  {CUP,PINT,GALLON,OUART}; 这条语句声明表示这种类型的变量以整型的方式存储,这些符号名的实际值都是整型值.这里CUP是0,PINT是1,以此类推.下面看一下一

C语言运算符优先级存在的问题

C语言中的符号重载(C专家编程,2.3误做之过,P38) 优先级问题 表达式 人们可能误以为的结果 实际结果 .的优先级高于* ->操作符用于消除这个问题 *p.f p所指对象的字段f (*p).f 对p取f偏移,作为指针,然后进行解除引用操作 *(p.f) []高于* int *ap[] ap是个指向int数组的指针 int (*ap)[] ap是个元素为int指针的数组 int *(ap[]) 函数()高于* int *fp() fp是个函数指针,所指函数返回int int(*fp)() f