c语言运算符及其优先级汇总表口诀

合集下载

c语言运算符号的优先级表

c语言运算符号的优先级表

c语言运算符号的优先级表
C语言运算符的优先级从高到低如下所示:
1. 括号(小括号、中括号、大括号)
2. 乘法运算符(*、/、%)、除法运算符(/、%)
3. 加法运算符(+)、减法运算符(-)
4. 关系运算符(>、<、>=、<=、==、!=)
5. 逻辑运算符(&&、||、!)
6. 位运算符(位与、位或、位异或、位求反)
7. 赋值运算符(=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=)
8. 条件运算符(?:)
9. 逗号运算符(,)
需要注意的是,运算符的优先级顺序并不是绝对的,有些特殊情况需要根据实际计算顺序来确定。

例如,在表达式中,先进行括号内的运算,然后是乘除法运算,接着是加减法运算。

而位运算符的优先级高于关系运算符,但低于乘除法运算符。

在实际编程过程中,为了避免因运算符优先级导致的错误,可以使用括号来明确指定运算顺序。

c语言符号运算优先级

c语言符号运算优先级

C 语言中的运算符优先级分为三级。

以下是一份详细的C 语言运算符优先级顺序列表:
1. 一级优先级(最高优先级):
- 括号:()
- 数组下标:[]
- 结构体成员运算符:.和->
2. 二级优先级:
- 逻辑非运算符:!
- 按位取反运算符:~
- 前缀增量运算符:--
- 前缀减量运算符:-
- 正号运算符:+
- 负号运算符:-
- 类型转换运算符:(类型)
- 指针运算符:&
- 长度运算符:sizeof
3. 三级优先级:
- 乘法运算符:*
- 除法运算符:/
- 取余(模)运算符:%
- 加法运算符:+
- 减法运算符:-
运算符的优先级与结合性相结合,决定了表达式中多个运算符的计算顺序。

结合性表示运算符之间是如何组合的,例如,一级运算符与二级运算符结合时,优先级较高的二级运算符会先进行计算。

以下是一个示例:
```c
int a = 16, b = 4, c = 2;
int d = a + b * c;
int e = a / b * c;
printf("d=%d, e=%d\n", d, e);
```
在这个例子中,乘法和除法的优先级高于加法,所以先计算乘法和除法,然后再进行加法运算。

最终输出结果为:`d=28, e=4`。

c语言优先级 口诀

c语言优先级 口诀

c语言优先级口诀C语言优先级口诀在C语言中,运算符的优先级决定了表达式的计算顺序。

了解和掌握运算符的优先级是编写高效、正确的代码的关键。

为了帮助大家记忆C语言中常用运算符的优先级,下面将给出一个简单易记的口诀。

1. 口诀概述2. 逻辑运算符优先级3. 关系运算符优先级4. 算数运算符优先级5. 赋值运算符优先级6. 条件运算符优先级7. 位运算符优先级8. 其他运算符优先级9. 总结1. 口诀概述C语言中运算符的优先级从高到低依次是:逻辑运算符、关系运算符、算数运算符、赋值运算符、条件运算符、位运算符和其他运算符。

2. 逻辑运算符优先级逻辑运算符包括与(&&)、或(||)和非(!)。

其中,非运算符的优先级最高,其次是与运算符,最后是或运算符。

3. 关系运算符优先级关系运算符包括相等(==)、不等(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。

关系运算符的优先级比逻辑运算符低。

4. 算数运算符优先级算数运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余(%)。

算数运算符的优先级比关系运算符低。

5. 赋值运算符优先级赋值运算符包括简单赋值(=)、加等于(+=)、减等于(-=)、乘等于(*=)、除等于(/=)和取余等于(%=)。

赋值运算符的优先级比算数运算符低。

6. 条件运算符优先级条件运算符是三目运算符,用于简化if-else语句。

条件运算符的优先级比赋值运算符低。

7. 位运算符优先级位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)。

位运算符的优先级比条件运算符低。

8. 其他运算符优先级其他运算符包括逗号(,)和取地址(&)。

其他运算符的优先级最低。

9. 总结在C语言中,运算符的优先级对于表达式的计算非常重要。

掌握运算符的优先级可以帮助我们编写更加高效和准确的代码。

c语言运算符的优先级顺序表格

c语言运算符的优先级顺序表格

在C语言中,运算符的优先级顺序如下(从高到低):
1. 括号运算符:()
2. 数组下标运算符:[]
3. 结构体成员运算符:.
4. 指针成员运算符:->
5. 后缀递增/递减运算符:++,--
6. 前缀递增/递减运算符:++,--
7. 一元运算符:+(正号),-(负号),!(逻辑非),~(按位取反),*(指针取值),&(取地址),sizeof
8. 类型转换运算符:(type)
9. 乘法运算符:*,/,%
10. 加法运算符:+,-
11. 移位运算符:<<,>>
12. 关系运算符:>,>=,<,<=
13. 相等运算符:==,!=
14. 按位与运算符:&
15. 按位异或运算符:^
16. 按位或运算符:|
17. 逻辑与运算符:&&
18. 逻辑或运算符:||
19. 条件运算符:?:
20. 赋值运算符:=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
21. 逗号运算符:,
请注意,优先级较高的运算符会先于优先级较低的运算符进行计算。

当有多个运算符出现时,可以使用括号来明确指定计算顺序,从而避免由于优先级导致的歧义或错误。

c语言操作符优先级

c语言操作符优先级

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

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

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

c语言中优先级顺序表

c语言中优先级顺序表

c语言中优先级顺序表
C语言中优先级顺序:
1、括号(( ) ):在C语言中,括号具有最高优先级,符号前后的优先级也是一样的;
2、先乘法/除法(*,/):先乘法再除法的优先级高于+-,留意乘除的关系;
3、加法/减法(+,-):加法减法的优先级就相对低一些,但是对于负数来说先计算会更明晰些;
4、左移位(<<)右移位(>>):C语言中左移位右移位的优先级是和乘除/加减平级的,且比其低;
5、关系运算符(>,<,>=,<=,==,!=):C语言中关系运算符的优先级还比较高,且等于号的优先级比最高;
6、位运算符(&,|,^):在C语言中位运算符的优先级位于关系运算符之下,就比上面的低一个级别;
7、逻辑与(&&)及逻辑或(||):C语言中逻辑与及逻辑或的优先级最低,且优先级大小一样。

如何记住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语言中各种运算符的优先级,从高到低排列:
1. ( ):括号运算符
2. [ ]:数组下标运算符
3. .:结构体成员访问运算符
4. ->:指向结构体成员的指针运算符
5. !、~、++、--、+、-:逻辑非、位求反、自增、自减、正号、负号运算符
6. *、/、%:乘法、除法、取模运算符
7. +、-:加法、减法运算符
8. <<、>>:左移、右移运算符
9. <、<=、>、>=:小于、小于等于、大于、大于等于运算符
10. ==、!=:相等、不相等运算符
11. &:按位与运算符
12. ^:按位异或运算符
13. |:按位或运算符
14. &&:逻辑与运算符
15. ||:逻辑或运算符
16. ? ::条件运算符
17. =、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=:赋值、复合赋值运算符
在运算符优先级相同的情况下,按照从左到右的顺序进行运算。

当然,在实际代码编写和阅读中,为了避免产生歧义和误解,建议在表达式中较为复杂时,使用括号明确运算的先后顺序。

c语言运算符优先级等级表

c语言运算符优先级等级表

C语言运算符等级
及结合性
运算符号及注释
1级(左结合)
() 圆括号
[]下标运算符
->指向结构体成员运算符. 结构体成员运算符。

2级(右结合)
!逻辑非运算符
~按位取反运算符++前缀增量运算符--前缀减量运算符
+正号运算符
-负号运算符(类型)类型转换运算符*指针运算符
&地址运算符sizeof长度运算符
3级(左结合)*乘法运算符/除法运算符%取余运算符
4级(左结合)+加法运算符
-减法运算符
5级(左结合)<<左移运算符
>>右移运算符
6级(左结合)<、<=、>、>=关系运算符
7级(左结合)==等于运算符
!=不等于运算符
8级(左结合)&按位与运算符
9级(左结合)^按位异或运算符
10级(左结合)|按位或运算符
11级(左结合)&&逻辑与运算符
12级(左结合)||逻辑或运算符
13级(右结合)? :条件运算符
14级(右结合)=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、
<<=、 >>=赋值运算符
15级(左结合),逗号运算符
运算符优先级等级口诀
圆方括号、箭头一句号
自增自减非反负、针强地址长度
乘除
加减
再移位
小等大等
等等不等
八位与
九位异
十位或
十一与
十二或
十三疑
十四赋
十五逗。

c语言运算符的优先顺序

c语言运算符的优先顺序

c语言运算符的优先顺序
C语言中的运算符具有不同的优先级,以下是常见的C语言运算符的优先级从高到低的顺序:
1. ():括号优先级最高,可以改变普通运算符的优先级。

2. ++、--:自增和自减运算符优先级高于一元运算符。

3. !、~、+、-:逻辑非、按位取反、正号、负号等一元运算符优先级高于二元运算符。

4. *、/、%:乘法、除法、取余运算符优先级高于加法和减法运算符。

5. +、-:加法和减法运算符优先级低于乘法、除法和取余运算符。

6. <<、>>:位移运算符优先级低于加法和减法运算符。

7. <、<=、>、>=:关系运算符优先级低于位移运算符。

8. ==、!=:相等和不相等运算符优先级低于关系运算符。

9. &:按位与运算符优先级低于相等和不相等运算符。

10. ^:按位异或运算符优先级低于按位与运算符。

11. |:按位或运算符优先级低于按位异或运算符。

12. &&:逻辑与运算符优先级低于按位或运算符。

13. ||:逻辑或运算符优先级低于逻辑与运算符。

14. ?::条件运算符优先级最低。

了解运算符的优先级可以避免出现错误的运算结果。

在对表达式进行运算的时候,建议使用括号来明确运算优先级。

c语言的优先级顺序表

c语言的优先级顺序表

c语言的优先级顺序表
C语言的运算符优先级顺序如下:
1. 括号(Parentheses)
2. 一元运算符(Unary Operators)
3. 乘法运算符*、除法运算符/、求余运算符%
4. 加法运算符+、减法运算符-
5. 移位运算符<<、>>
6. 大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=
7. 等于运算符==、不等于运算符!=
8. 按位与运算符&
9. 按位异或运算符^
10. 按位或运算符|
11. 逻辑与运算符&&
12. 逻辑或运算符||
13. 三目条件运算符? :
14. 赋值运算符=、+=、-=、*=、/= 等
15. 逗号运算符,
注意:尽管这个顺序大致上是对的,但是不同的编译器可能会有些许的差异,所以建议在编写代码时始终使用括号来明确优先级。

c语言运算符的优先顺序

c语言运算符的优先顺序

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 1 -。

c语言算术运算符 关系运算符 逻辑运算符优先级

c语言算术运算符 关系运算符 逻辑运算符优先级

C语言算术运算符、关系运算符和逻辑运算符优先级详解一、算术运算符1.1 加法运算符(+)加法运算符用于对两个数进行相加操作,例如:a + b。

在C语言中,加法运算符的优先级较低。

1.2 减法运算符(-)减法运算符用于对两个数进行相减操作,例如:a - b。

和加法运算符一样,减法运算符的优先级也较低。

1.3 乘法运算符(*)乘法运算符用于对两个数进行相乘操作,例如:a * b。

在C语言中,乘法运算符的优先级比加法和减法运算符高。

1.4 除法运算符(/)除法运算符用于对两个数进行相除操作,例如:a / b。

和乘法运算符一样,除法运算符的优先级比加法和减法运算符高。

1.5 取模运算符()取模运算符用于求两个数相除后的余数,例如:a b。

在C语言中,取模运算符的优先级和乘法、除法运算符相同。

二、关系运算符2.1 等于运算符(==)等于运算符用于判断两个数是否相等,例如:a == b。

在C语言中,等于运算符的优先级较低。

2.2 不等于运算符(!=)不等于运算符用于判断两个数是否不相等,例如:a != b。

和等于运算符一样,不等于运算符的优先级较低。

2.3 大于运算符(>)大于运算符用于判断一个数是否大于另一个数,例如:a > b。

在C语言中,大于运算符的优先级较低。

2.4 小于运算符(<)小于运算符用于判断一个数是否小于另一个数,例如:a < b。

和大于运算符一样,小于运算符的优先级较低。

2.5 大于等于运算符(>=)大于等于运算符用于判断一个数是否大于或等于另一个数,例如:a >= b。

在C语言中,大于等于运算符的优先级较低。

2.6 小于等于运算符(<=)小于等于运算符用于判断一个数是否小于或等于另一个数,例如:a <= b。

和大于等于运算符一样,小于等于运算符的优先级较低。

三、逻辑运算符3.1 逻辑与运算符()逻辑与运算符用于判断多个条件是否同时成立,例如:(a > 0) (b < 10)。

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. 移位运算符:<< >>
6. 关系运算符:> >= < <=
7. 相等运算符:== !=
8. 按位与运算符:&
9. 按位异或运算符:^
10. 按位或运算符:|
11. 逻辑与运算符:&&
12. 逻辑或运算符:||
13. 条件运算符:?:
14. 赋值运算符:= += -= *= /= %= <<= >>= &= ^= |=
15. 逗号运算符:,
需要注意的是,优先级高的运算符会先被计算,而优先级相同的运算
符则按照结合性从左到右计算。

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

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,同优先级,按照从左到右顺序,先算除法,再算乘法,最后赋值。

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

C语言运算符及其优先级汇总表口诀
圆下箭头一顿号
非凡增减富强针地长
三乘除,四加减,五移位
千万别把鱼忘记,它在盛饭的厨子里
小灯大灯灯灯不等
爸喂鱼,舅疑惑,裸鸡也疑惑
十三姨,十四父,十五逗,兜到低
“圆下箭头一顿号”指的是第15级的运算符。

其中圆指的是运算符(),下指的是下标运算符[],箭头指的是指向结构体成员运算符->,顿号指的是结构体成员运算符、“非凡增减富强针地长”指的是第14级的运算符。

其中非指的是逻辑运算符!,凡指的是按位取反运算符~,增减指的是自增和自减运算符++和--,富指的是负号运算符-,强指的是类型转换运算符(类型),针指的是指针运算符*,地指的是地址运算符&,长指的是长度运算符Sizeof
“三乘除,四加减,五移位” 指的是第13级到第11级的运算符。

其中三四五并无实际意义,只是起区分级别而已。

也可以想象三指的是第13级运算符。

乘除指的是乘法运算符*和除法运算符/,加减指的是加法运算符+和减法运算符-,移位指的是左移运算符<<和右移运算符>>
“千万别把鱼忘记,它在盛饭的厨子里”指的是求余运算符%,它位于盛饭的厨子里,即指和乘法运算符、除法运算符在一起。

“小灯大灯灯灯不等” 指的是第10级到第9级的运算符。

其中小灯大灯指的是关系运算符<、<=、>和>=,灯灯指的是等于运算符==,不等指的是不等于运算符!= “爸喂鱼,舅疑惑,裸鸡也疑惑”指的是第8级到第4级的运算符。

其中,爸喂鱼之指的是第8级的按位与运算符&,舅疑惑指的是第7级的按位异或运算符^和第6级的按位或运算符||,裸鸡也疑惑指的是第5级、第4级的逻辑与运算符&&和逻辑或运算符|| “十三姨,十四父,十五逗,兜到低”指的是第3级到第1级的运算符。

其中,十三姨指的是条件运算符?: (三有双重含义,即指?:的优先级别是三,它的运算符类型也是三目,?难道不是姨即疑惑吗?),十四父的十四没有实际意义,父指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1级的运算符,兜到低指的是15级运算符以,结束。

附录:C语言运算符及优先级
优先级运算符含义运算符类型结合方向
15 ()圆括号单目自左向右
[] 下标运算符
—> 指向结构体成员运算符
、结构体成员运算符
14 !逻辑非运算符自右向左
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
- 负号运算符
(类型)类型转换运算符
* 指针运算符
& 地址运算符
Sizeof 长度运算符
13 * 乘法运算符双目自左向右
/ 除法运算符
% 求余运算符
12 + 加法运算符
- 减法运算符
11 << 左移运算符
>> 右移运算符
10 <、<=、>、>= 关系运算符
9 == 等于运算符
!= 不等于运算符
8 & 按位与运算符
7 ^ 按位异或运算符
6 | 按位或运算符
5 && 逻辑与运算符
4 || 逻辑或运算符
3 ?:条件运算符三目自右向左
2 =、+=、-=、*=、
/=、%=、>>=、
<<=、&=、^=、|= 赋值运算符双目
1 ,逗号运算符双目自左向右
②括号成员第一; //括号运算符[]() 成员运算符. -> 全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== !=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与//逻辑运算符:|| 和&&
十二和十一; //注意顺序:优先级(||) 底于优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!
逗号运算级最低! //逗号运算符优先级最低
由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!
((*strDest++=*strSrc++)!='\0'); :
重点:++后增运算符优先级高于*
1.*strDest++相当于*(strDest++)
2.由于是后自增,故执行顺序为:
*strDest=*strSrc
strDest++ strsrc++ //该级顺序不明
将*strDest与'\0'比较//即,整个表达式的值为*strDest与'\0'的比较结果值得注意的是,对于赋值表达式,表达式本身的值等于左边子表达式的值。

通过以上深入的分析,我们知道这个表达式完成了以下多个功能:
1.对于指针strDest, strSrc,将strSrc所指的内存空间的值赋给由strDest所指的内存空间。

2.判断赋值后的strDest所指的内存空间的指是否等于0。

3.对于指针strDest,strSrc,他们的值分别加1,即指向下一个元素。

即:该表达式实现了以下三个功能:
1.对于指针strDest, strSrc,将strSrc所指的内存空间的值赋给由strDest所指的内存空间。

2.判断赋值后的strDest所指的内存空间的值是否等于0。

3.对于指针strDest,strSrc,他们的值分别加1,即指向下一个元素。

相关文档
最新文档