C运算符优先级记忆口诀

合集下载

c语言表达式优先级

c语言表达式优先级

c语言表达式优先级
c语言中运算顺序十分重要,经常记也经常忘,为了好找,copy了一份。

C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:
第1优先级:各种括号,如()、[]等、成员运算符 . ;
第2优先级:所有单目运算符,如++、–、!、~等;
第3优先级:乘法运算符*、除法运算符/、求余运算符%;
第4优先级:加法运算符+、减法运算符-;
第5优先级:移位运算符<<、>>;
第6优先级:大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
第7优先级:等于运算符==、不等于运算符!=;
第8优先级:按位与运算符&;
第9优先级:按位异或运算符^;
第10优先级:按位或运算符|;
第11优先级:逻辑与运算符&&;
第12优先级:逻辑或运算符||;
第13优先级:三目条件运算符?: ;
第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;第15优先级:逗号运算, 。

C运算符优先级记忆口诀

C运算符优先级记忆口诀

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。

()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中,< <= > >=要比 == !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。

如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。

如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

初——单——算,关——逻,条——赋——逗断句如上。

怎么记忆呢?我是这样记忆的:“”内表示运算符的简称。

“初”次“单”独找你“算”账,(因为你和关羽有仇)“关”羽带着兵巡“逻”(因为你躲了起来)你跑到别处了,隐姓埋名,“挑”着“豆腐”卖。

C语言优先级口诀

C语言优先级口诀

一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号)++ -- &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
就着多吧结合性:2 13 14 是从右至左其他都是从左至右有问题可以在交流

共同进步
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++、--、+(正)、-(负) 、指针运算*、&乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和&&
十二和十一; //注意顺序:优先级(||) 底于优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高逗号运算级最低! //逗号运算符优先级最低。

如何记住C语言的运算符优先级

如何记住C语言的运算符优先级

如何记住C语言的运算符优先级优先决括号成员第一; //括号运算符[]() 成员运算符. ->全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等等于(与)不等排第七; //即== !=位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)"三分天下"八九十;逻辑或跟与; //逻辑运算符:|| 和&&十二和十一; //注意顺序:优先级(||) 底于优先级(&&)条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!逗号运算级最低! //逗号运算符优先级最低由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.附录:c 语言运算符优先级表关联操作符:() [] -> .一元操作符:! - ++ -- + - (type) * & sizeof乘法操作符:* / %加法操作符:+ -移位操作符:<< >>关系操作符:< <= > >=“相等”比较:== !=位操作符:&位操作符:^位操作符:|逻辑操作符:&&逻辑操作符:||条件操作符:?:赋值操作符:= += -= 等等逗号:第一、像() [] -> .之类的理所当然是最优先的,其实它们压根也不算什么运算符了。

第二、除了上面的四种运算符之外,接下来就是单目运算符,也就是! ~ ++ -- - (type) * & sizeof 了。

c语言优先级记忆

c语言优先级记忆

c语言优先级记忆
(逻辑)非算(术运算符)关(系运算符)(逻辑)与(逻辑)或条(件运算符)赋(值运算符),
括号内的不必读出,直接念非算关与或条赋,但要知道每个字是什么意思.
是这样的:张飞算计关羽,或者tiaoxi妇女.
初单算,关逻,条赋逗(我认为最好的断句)
这样记:
《一道简单算术题》
①我“初”次做了一道“简”单的“算术”题。

②由于我没看懂题目内在的“关系”和“逻辑”。

(注意:字母顺序G→L)
③以致乱用“条件”,变量乱“赋值”。

从而导致了运算的错误。

这么简单的题目啊,我闹了笑话。

(也即“逗”得大家一直笑。


醋坛酸味灌
味落跳福豆
共44个运算符
醋-初等,4个:()[]-指向结构体成员.结构体成员
坛-单目,9个:!~++---负号(类型)*指针取地址sizeof 长度(结合方向:自右向左)
酸-算术,5个:*/%+-减
味-位移,2个:
灌-关系,6个:====等于!=不等于[标签:内容]。

c语言优先级顺口溜

c语言优先级顺口溜

c语言优先级顺口溜C语言优先级顺口溜C语言是一门非常重要的编程语言,它的优先级是程序员必须掌握的知识点之一。

下面将按照不同类别,为大家介绍一些C语言优先级的顺口溜,希望能够帮助大家更好地掌握这个知识点。

一、算术运算符的优先级算术运算符是程序中经常使用的运算符之一,下面是一些关于算术运算符优先级的顺口溜:1. 括号优先级最高,加减次之,乘除居末。

2. 一加一减,二乘二除,三幂四模,括号最优。

3. 加减优先级低,乘除优先级高,括号优先级最高。

4. 括号先计算,乘除后算,加减最后算。

二、关系运算符的优先级关系运算符是用于比较两个值的运算符,下面是一些关于关系运算符优先级的顺口溜:1. 大于小于等于,优先级逐渐降低。

2. 等于不等于,优先级相等。

3. 等于不等于,优先级高于大于小于等于。

4. 大于小于等于,优先级高于等于不等于。

三、逻辑运算符的优先级逻辑运算符是用于判断逻辑关系的运算符,下面是一些关于逻辑运算符优先级的顺口溜:1. 非先运算,且和或次之。

2. 非优先级最高,且优先级高于或,或优先级高于异或。

3. 非优先级最高,且优先级高于与,与优先级高于或。

四、赋值运算符的优先级赋值运算符是用于将一个值赋给一个变量的运算符,下面是一些关于赋值运算符优先级的顺口溜:1. 赋值优先级最低,等于号右侧先算。

2. 赋值优先级最低,等号右侧先算,赋值从右往左传。

3. 赋值优先级低,等号右侧先算,赋值从右往左传,等号左侧是单个变量。

总结:以上是关于C语言优先级的一些顺口溜,希望能够帮助大家更好地掌握这个知识点。

需要注意的是,在编写程序时,应该根据实际情况来确定运算符的优先级,以避免因优先级问题而导致程序出错。

c语言运算符的优先顺序

c语言运算符的优先顺序

c语言运算符的优先顺序
C语言中,运算符的优先级是指运算符的执行顺序。

在一个表达式中,如果同时存在多个运算符,那么先执行优先级高的运算符,再执行优先级低的运算符。

如果优先级相同,则按照从左到右的顺序执行。

下面是C语言中常见运算符的优先级从高到低的顺序:
1. ():括号优先级最高,可以改变其他运算符的优先级。

2. !、~、++、--:逻辑非、按位取反、自增、自减的优先级比较高。

3. *、/、%:乘、除、取模的优先级依次降低。

4. +、-:加、减的优先级依次降低。

5. <<、>>:左移、右移的优先级比加减低一级。

6. <、<=、>、>=:比较运算符的优先级比移位运算符低。

7. ==、!=:等于、不等于的优先级比大小关系运算符低。

8. &:按位与的优先级比逻辑关系运算符低。

9. ^:按位异或的优先级比按位与低。

10. |:按位或的优先级最低。

以上是C语言中运算符的优先级顺序。

在使用时,我们可以根据优先级自行添加或省略括号,以达到预期的运算结果。

- 1 -。

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

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

C语言运算符优先级和口诀
一、优先级:从高到低(一共有十五个优先级)
1 () [] . ->
2 ! ~ -(负号)++ -- &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
二、结合性:
2 1
3 1
4 是从右至左其他都是从左至右
三、口诀:
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如++、--、+(正)、-(负) 、指针运算*、&乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和&&
十二和十一; //注意顺序:优先级(||) 底于优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高逗号运算级最低! //逗号运算符优先级最低。

c语言运算符的优先级顺序口诀

c语言运算符的优先级顺序口诀

c语言运算符的优先级顺序口诀
C语言是一门广泛应用于计算机编程的高级编程语言,它具有丰富的运算符,这些运算符的优先级不同,在进行复杂的运算时,需要根据优先级的顺序来进行计算,否则就会出现错误的结果。

为了方便大家记忆C语言运算符的优先级顺序,我们可以通过一些口诀来帮助自己记忆,下面就为大家介绍一些常用的口诀。

1. “括号内先算,高优先级先算”,这是我们最常见的一句口诀。

它的意思是在计算表达式时,括号内的运算要先算,高优先级的运算要先算。

2. “乘除加减不同,左右结合要分清”,这句口诀的意思是乘、除、加、减这四个运算符的优先级不同,要根据不同的优先级来计算,同时在计算时要注意运算符的左右结合性。

3. “赋值号右边,先算再赋值”,这句口诀的意思是在进行赋值运算时,先进行右边的运算,再将结果赋值给左边的变量。

4. “逻辑或逻辑与,短路规则要懂”,这句口诀的意思是在进行逻辑或和逻辑与运算时,要注意短路规则,即如果左边的表达式已经能够确定结果,就不再计算右边的表达式。

5. “位运算不容易,要多记多算”,这句口诀的意思是在进行位运算时,要注意运算符的优先级和运算规则,因为位运算比较复杂,需要多记多算。

以上就是一些常用的口诀,通过这些口诀,我们可以更加方便地记忆C语言运算符的优先级顺序,从而避免在编程时出现错误。

当然,
除了这些口诀,我们还需要多进行实践和练习,才能真正掌握C语言的运算符优先级顺序。

c语言运算优先顺序

c语言运算优先顺序

c语言运算优先顺序
C语言中的运算符优先级顺序如下(由高到低):
1. 小括号(())
2. 一元运算符(正负号、位求反、逻辑非等)
3. 乘法、除法与取余(*、/、%)
4. 加法与减法(+、-)
5. 移位运算(<<、>>)
6. 关系运算符(<、>、<=、>=)
7. 相等运算符(==、!=)
8. 位运算符(按位与、按位或、按位异或等)
9. 逻辑运算符(逻辑与、逻辑或)
10. 条件运算符(三目运算符)
11. 赋值运算符(=、+=、-=等)
12. 逗号运算符(,)
在表达式中,括号可以改变运算符的优先级,括号中的表达式会先被计算。

当运算符的优先级相同时,根据结合性(从左到右或从右到左)来决定运算顺序。

C语言运算符优先级

C语言运算符优先级
逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。
跟在其后的&&比||高。
接下来的是条件运算符,赋值运算及逗号运算符。
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。
&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式
由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于
C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!
醋坛酸味灌
味落跳福豆
共44个运算符
醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
落-逻辑,2个: && 逻辑与 || 逻辑或
跳-条件,1个,三目: ? : (结合方向:自右向左)
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |= (结合方向:自右向左)
10 <、<=、>、>= 关系运算符
9 == 等于运算符
!= 不等于运算符
8 & 按位与运算符
的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断
在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。
赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

c语言优先级运算符

c语言优先级运算符

c语言优先级运算符
c语言优先级运算符顺序是逻辑非最高,算术运算符次之,第三为关系运算符,第四为逻辑与逻辑或,最后是赋值运算符。

由于运算符众多,各种运算符内部的优先级需要查表确定,日常只需要记住整体运算符优先级即可。

一、逻辑运算符与关系运算符优先级
例如:(4>2)||(3>5)&&!(2>0)
解析:有括号,先算括号,再按照优先级先进行!运算,(2>0)结果为真,!运算后,结果为假;然后从左到右进行:(4>2)结果为真,(3>5)结果为假,真与假或运算,结果为真;(4>2)||(3>5)的结果与非运算(!(2>0))的结果进行与运算,结果为假。

二、算术运算符与赋值运算符优先级
例如:
#include <stdio.h>
int main(){
int a = 8, b = 2, c = 1;
int d = a + b * c;
int e = a / b * c;
printf( "d=%d, e=%d\n", d, e);
return 0;
}
运行结果:d=10, e=4
解析:仍然是先算乘除、后算加减,有括号先算括号内的,同级运算,从左到右。

d = a + b * c,先算乘法,再算加法,最后赋值。

e = a / b * c,同优先级,按照从左到右顺序,先算除法,再算乘法,最后赋值。

c 语言 符号优先级

c 语言 符号优先级

c 语言符号优先级
在C语言中,不同运算符有不同的优先级。

下面是常见的C语言运算符的优先级从高到低的顺序:
1. 圆括号:()
2. 单目运算符:++ -- ! ~ + -(正负号)*(取值)&(取地址)
3. 乘除模运算符:* / %
4. 加减运算符:+ -
5. 移位运算符:<< >>
6. 关系运算符:> >= < <=
7. 相等运算符:== !=
8. 按位与运算符:&
9. 按位异或运算符:^
10. 按位或运算符:|
11. 逻辑与运算符:&&
12. 逻辑或运算符:||
13. 条件运算符:?:
14. 赋值运算符:= += -= *= /= %= <<= >>= &= ^= |=
15. 逗号运算符:,
需要注意的是,优先级高的运算符会先被计算,而优先级相同的运算
符则按照结合性从左到右计算。

如果不确定运算符的优先级,可以使用括号来明确表达式的计算顺序。

C运算符快速记忆法

C运算符快速记忆法

C语言运算符快速记忆法-打油诗小中括号属上级,大小成员从左排, //想象开会非凡自我有个性(型),指针地址常(长)右来。

//特别的人乘除加减算一算,左移右移算一算, //想象做计算,大于小于算一算。

等不等于遇疑惑,逻辑不清遇疑惑, //想象计算结果,最后逻辑不清为什么呢?为什么呢?赋值运算太麻烦,不如数豆来的快!关键点:把握大体,在细化支节小中括号属上级,大小成员从左排1, ()[ ] 括号,2, 成员* -> //从左往右非凡自我有个性(型),指针地址常(长)右来3, 注:类型! ~ ++ -- sizeof * & //单目运算,从右往左乘除加减算一算,左移右移算一算4:* / %5:+ -6:<< >>大于小于算一算7:> < >= <=等不等于遇疑惑(与于或)8:== !=9: ^& |注,可以想象成刚开始计算判断后不知道是否对错遇疑惑,在后来搞晕了逻辑不清了更加疑惑了逻辑不清遇疑惑(逻辑与,或)10: && ||注:经常出错的就是在这几个运算符,遇疑惑语意双关,要特别留意。

&& ||在C中是同一级的,在JAVA中逻辑与比逻辑或的级别要高,但在实际的运用中,由于条件判断的阻隔,没法体现。

为什么呢?11:?赋值运算太麻烦12:=, +=, -=,/= ,*=等等不如数豆来的快!13: 逗号运算//相信大家小时候都搞过,算不清了,数棍子,数石头,数脚指头。

注:常常搞混的一个是单目运算方面,另一个是与于或和等不等于方面.看到网上讲的各种记忆,感觉讲的太专业了,看两天后过后还是容易搞混,有感写了一下,让各位见笑,好不好,都拿走。

xj2008.06.01。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。

()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中,< <= > >=要比 == !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。

如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。

如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

初——单——算,关——逻,条——赋——逗断句如上。

怎么记忆呢?我是这样记忆的:“”内表示运算符的简称。

“初”次“单”独找你“算”账,(因为你和关羽有仇)“关”羽带着兵巡“逻”(因为你躲了起来)你跑到别处了,隐姓埋名,“挑”着“豆腐”卖。

(当了卖豆腐的):豆腐——实际上是“赋”“逗”∙2009-4-8 15:43∙回复我是这样记得: 一个自称黑的初学者连编程都不会还算什么黑客,把自己关起来反思吧,逻辑都没有条理,因为你不认真学!还找理由说因为天赋不够,真逗``[ 2008-1-30 19:22:00 | Author: 盛方单片机 ]C语言运算符优先级顺口溜[转]醋坛酸味灌味落跳福豆共44个运算符醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度(结合方向:自右向左)酸-算术,5个: * / % + -减味-位移,2个: << >>灌-关系,6个: < <= > >= == 等于 != 不等于味-位逻,3个:& 按位与 ^ 按位异或 | 按位或落-逻辑,2个: && 逻辑与 || 逻辑或跳-条件,1个,三目: ? :(结合方向:自右向左)福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= (结合方向:自右向左)豆-逗号,1个: ,结合方向自右向左的只有三类:赋值、单目和三目,其它的都是从左至右结合。

注意:自己今天写程序时候把关系运算符号和位逻辑的优先级弄反。

尽量用括号,就不出问题。

如:if(P1OUT&BIT0==0)P1OUT ^=BIT0; //判断p1.0是否输出为0,是就翻转,即点亮LED.这行程序是错误的。

可两边加上括号,即if((P1OUT&BIT0)==0),或是直接用:P1OUT|=BIT0;具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。

()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中,< <= > >=要比 == !=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。

&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。

如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。

如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。

经高人指点,记住了一句话,用于记住常用运算符的优先级,终身受用:"(逻辑)非算(术运算符) 关(系运算符) (逻辑)与 (逻辑)或条(件运算符) 赋(值运算符)",括号内的不必读出,直接念"非算关与或条赋",但要知道每个字是什么意思.记忆方法是这样的:"张飞算计关羽,或者tiaoxi妇女".方法不是很优雅,但是很奏效,如果有更好的记忆法,可以提出来,以防本人让历史重演C中运算符记忆规律(2009-10-23 17:28:33)标签:杂谈分类:学习C++操作符的优先级操作符及其结合性功能用法L L L ::::::全局作用域类作用域名字空间作用域::nameclass::namenamespace::nameL L L L L .->[]()()成员选择成员选择下标函数调用类型构造object.memberpointer->membervariable[expr]name(expr_list)type(expr_list)R R R R R ++--typeidtypeid显示强制类型转换后自增操作后自减操作类型ID运行时类型ID类型转换lvalue++lvalue--typeid(type)typeid(expr)cast_name<type>(expr)R R R R sizeofsizeof++--对象的大小类型的大小前自增操作前自减操作sizeof exprsizeof(type)++lvalue--lvalueR R R R R R R R R R ~!-+*&()newdeletedelete[]位求反逻辑非一元负号一元正号解引用取地址类型转换创建对象释放对象释放数组~expr!expr-expr+expr*expr&expr(type)exprnew typedelete exprdelete []exprL L ->*.*指向成员操作的指针指向成员操作的指针ptr->*ptr_to_memberobj.*ptr_to_memberL L L */%乘法除法求模(求余)expr * exprexpr / exprexpr % exprL L +-加法减法expr + exprexpr - exprL L <<>>位左移位右移expr << exprexpr >> exprL L L L <<=>>=小于小于或等于大于大于或等于expr < exprexpr <= exprexpr > exprexpr >= exprL R ==!=相等不等Expr == exprExpr != exprR&位与Expr & exprR^位异或Expr ^ exprR|位或Expr | exprR&&逻辑与Expr && exprR||逻辑或Expr || exprR?:条件操作Expr ? expr : exprR R R R R =*=,/=,%=+=,-=<<=,>>=&=,|=,^=赋值操作符合赋值操作Lvalue= exprLvalue+= expr……R throw抛出异常Throw exprL,逗号Expr, expr记忆方法:--摘自《C语言程序设计实用问答》-吕凤翥吕涛著问题:如何记住运算符的15种优先级和结合性?解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。

如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。

结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。

优先级有15种。

记忆方法如下:记住一个最高的:构造类型的元素或成员以及小括号。

记住一个最低的:逗号运算符。

剩余的是一、二、三、赋值。

意思是单目、双目、三目和赋值运算符。

在诸多运算符中,又分为:算术、关系、逻辑。

两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。

再细分如下:算术运算符分*,/,%高于+,-。

关系运算符中,》,》=,《,〈=高于==,!=。

逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。

逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。

这样就将15种优先级都记住了,再将记忆方法总结如下:去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。

双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中初单算,关逻,条赋逗(我认为最好的断句)这样记:《一道简单算术题》①我“初”次做了一道“简”单的“算术”题。

②由于我没看懂题目内在的“关系”和“逻辑”。

(注意:字母顺序G→L)③以致乱用“条件”,变量乱“赋值”。

从而导致了运算的错误。

这么简单的题目啊,我闹了笑话。

(也即“逗”得大家一直笑。

)-----------------------------------------------------------------------------------C语言运算符优先级顺口溜[转]醋坛酸味灌味落跳福豆共44个运算符醋-初等,4个:( ) [ ] -> 指向结构体成员. 结构体成员坛-单目,9个:! ~ ++ -- -负号(类型) *指针&取地址sizeof长度(结合方向:自右向左)酸-算术,5个:* / % + -减味-位移,2个:<< >>灌-关系,6个:< <= > >= == 等于!= 不等于味-位逻,3个:& 按位与^ 按位异或| 按位或落-逻辑,2个:&& 逻辑与|| 逻辑或跳-条件,1个,三目:? : (结合方向:自右向左)福-赋值,11个:= += -= *= /= %= >>= <<= &= ^= |= (结合方向:自右向左)豆-逗号,1个:,结合方向自右向左的只有三类:赋值、单目和三目,其它的都是从左至右结合。

相关文档
最新文档