第9次(赋值运算符、算术运算符、自增自减运算符)
返回本节目录
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
授课要点
• 赋值运算符及表达式 • 算术运算符及表达式 • 自增、自减运算符及表达式
IT Education & Training
Date: October 18, 2012
/*结果输出*/ printf(“\n两数和为%lf,两数差为%lf,两数积为%lf,两数商为%lf,两数模为 %lf”,dAdd,dSub,dMult,dDiv,dMod); } IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
学以致用
• 一个数能够整除另一个数如何表达?一个数是偶数/奇数 如何表达? • 生活中常见的例子,银行中已知利率2.5%,存入5000元 1年后共能够取出多少钱? • 已知某人的工资,要计算个人所得税等等。用C语言来描 述计算 。
IT Education & Training
返回本节目录
Date: October 18, 2012
Neusoft Institute of Information 2. ++和- -运算符的位置和放在操作数的前面和后面 的区别?
IT Education & Training
?:
, *、& sizeof (类型) . 、-> [ ] 函数运算符( )
2.表达式 用运算符将操作对象连接起来、符合C语法规则的式子称为表达式。
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
Neusoft Institute of Information
在用C程序描述各种运算时将使用各种类型 的运算符,其中包括赋值运算符、算术运算符 关系运算符、逻辑运算符、条件运算符等
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
问题引入
回顾前面所学,举例说明如何为变量赋值?
结论:运用赋值运算符及表达式
IT Education & Training
Date: October 18, 2012
Date: October 18, 2012
Neusoft Institute of Information
问题引入
当变量的值每次递增/递减1时,i=i+1、i+=1 i=i-1、i-=1能否有更简洁的形式?
IT Education & Training
Date: October 18, 2012
程序的运行结果如下:
Date: October 18, 2012
Neusoft Institute of Information
模仿练习
1. y=5,执行完y++;后,y的值是?
2. y=5,执行完++y;后,y的值是? 3. y=5,执行完x=y++;后,x的值是?y的值是?
4. y=5,执行完x=++y;后,x的值是?y的值是?
基本算术运算符总结
–基本算术运算符:加法(+)、减法(-)、乘法
(*)、除法(/)和求余(%)
–结合方向:从左向右 –优先级: - (负)---->* / % -----> + (2) (3) (4) 说明: –“-”可为单目运算符时,右结合性 –两整数相除,结果为整数 –%要求两侧均为整型数据
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
第二章
数据类型及表达式
任课教师:黄伟
办公室:C7 EMAIL:huang.w@ 课件下载网址:ftp://
IT Education & Training IT Education & Training
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
自增、自减运算符总结
自增(++)和自减(--)运算符是单目运算符,其功能是使运算对象(变量) 的值增1或减1。它们既可以作前缀运算符(位于运算对象的前面),如 ++i,--i;也可以作后缀运算符(位于运算对象的后面),如i++,i--。 前缀和后缀运算的数据处理方法有明显的差异。对于前缀形式表示在用该 表达式之前先使变量值增(减)1;对于后缀形式表示在用该表达式的值 之后使n的值增(减)1。++j,--j 在使用j之前,先使j的值加(减)1。 j++,j— 在使用j之后,使j的值加(减)1。 自增或自减运算符在使用时,需要注意以下几点: (1)运算符的操作对象,只能是变量,而不能作用于常量或表达式。 运算符的优先级高于基本算术运算符,结合性是“自右向左”右结合。 (2)i++,遵照右结合原则,它相当于-( i ++),而不相当于(-i)++形式。
Date: October 18, 2012
Neusoft Institute of Information
算术赋值运算符及其表达式
+= -= *= /= %=
iOper1+=5;等价于iOper1=iOper1+5; iOper1-=5;等价于 iOper1*=5;等价于 ? ?
iOper1/=5;等价于
Neusoft Institute of Information
赋值运算符及赋值表达式
简单赋值运算符及其表达式
赋值运算符是“=”,其作用是将赋值运算符右侧的表达式的值赋给其 左侧的变量。
值得注意的是:赋值运算符运算对象中的左侧对象一定是变量。如: a=b-c=5;相当于a=((b-c)=5);,由于表达式中出现将数值5赋给b-c表 达式,因此,该表达式是非法的。
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
结论2——++和- -为前缀与后缀的区别
1. 对于前缀形式表示在用该表达式之前先使变量值增 (减)1; 2. 对于后缀形式表示在用该表达式的值之后使n的值 增(减)1。 3. ++j,--j 在使用j之前,先使j的值加(减)1。j++,j-- 在 使用j之后,使j的值加(减)1
Neusoft Institute of Information
自增、自减运算符实例
#include<stdio.h> void main() { int i,j,k,l; i=3; j=7; k=i++; l=j--; printf("i=%d,",i); printf("j=%d\n",j); printf("k=%d,",k); printf("l=%d\n",l); i=++i; j=--j; printf("i=%d,",i); printf("j=%d\n",j); printf("k=%d,",k); printf("l=%d\n",l); } IT Education & Training
Neusoft Institute of Information
问题引入
如何编写一个能进行五则混合运算的简易计算 器程序? 功能包括求两个数的和、差、积、商, 如何表示?
结论:运用算术运算符及表达式
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
Date: October 18, 2012
Neusoft Institute of Information
结论1——%运算符的操作数类型
1. %运算符两侧的操作数只能为整型 2. %运算的结果的符号和被除数相同(被除数 为正,余数为正,被除数为负,余数为负) 3. 其它类型若进行%运算,先进行强制类型转 化
问题引入
将华氏温度转换成摄氏度,如何求解? 摄氏温度=(5/9)×(华氏温度-32) 解决上述问题需用到赋值运算符和算术 运算符
IT Education & Training
Date: October 18, 2012
Neusoft Institute of Information
授课要点
• 复习 • 赋值运算符及表达式 • 算术运算符及表达式 • 自增、自减运算符及表达式
C语言中的运算符
无论是加减乘除还是大于小于,都需要用到运算符,在C语言中的运算符和我们平时用的基本上都差不多。
运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符。
大多数运算符都是二目运算符,即运算符位于两个表达式之间。
单目运算符的意思是运算符作用于单个表达式。
(具体什么是表达式下一节再说)一、赋值运算符赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。
符号为‘=’。
这里并不是等于的意思,只是赋值,等于用‘==’表示。
注意:赋值语句左边的变量在程序的其他地方必须要声明。
得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为她它们出现在赋值语句的右边。
常数只能作为右值。
例如:count=5;total1=total2=0;第一个赋值语句大家都能理解。
第二个赋值语句的意思是把0同时赋值给两个变量。
这是因为赋值语句是从右向左运算的,也就是说从右端开始计算。
这样它先total2=0;然后total1=total2;那么我们这样行不行呢?(total1=total2)=0;这样是不可以的,因为先要算括号里面的,这时total1=total2是一个表达式,而赋值语句的左边是不允许表达式存在的。
二、算术运算符在C语言中有两个单目和五个双目运算符。
符号功能+ 单目正- 单目负* 乘法/ 除法% 取模+ 加法- 减法下面是一些赋值语句的例子,在赋值运算符右侧的表达式中就使用了上面的算术运算符:Area=Height*Width;num=num1+num2/num3-num4;运算符也有个运算顺序问题,先算乘除再算加减。
单目正和单目负最先运算。
取模运算符(%)用于计算两个整数相除所得的余数。
例如:a=7%4;最终a的结果是3,因为7%4的余数是3。
那么有人要问了,我要想求它们的商怎么办呢?b=7/4;这样b就是它们的商了,应该是1。
也许有人就不明白了,7/4应该是1.75,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。
c语言34种运算符意义和用法
文章标题:深度解析C语言34种运算符的意义和用法在计算机编程世界中,C语言是一种广泛应用的计算机程序设计语言,它为程序员提供了丰富的运算符来完成各种数学和逻辑运算。
作为一个编程语言中至关重要的部分,了解和掌握C语言的运算符对于程序员来说至关重要。
在本文中,我们将深度解析C语言的34种运算符,包括它们的意义和用法,以帮助读者全面了解这些运算符的特点和功能。
1. 赋值运算符赋值运算符是C语言中最基本的运算符之一,用于将右侧的数值或表达式赋给左侧的变量。
赋值运算符由等号(=)表示,例如:a = 10;将10这个数值赋给变量a。
2. 算术运算符算术运算符用于执行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)和求模(%)等。
这些运算符在C语言中十分常见,用于处理数字类型的变量。
3. 自增、自减运算符自增(++)和自减(--)运算符用于增加或减少变量的值,它们可以用作前缀或后缀运算符,分别表示在表达式中先执行运算或者先获取变量的值再执行运算。
4. 关系运算符关系运算符用于比较两个值的大小关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。
这些运算符经常用于条件判断和逻辑运算中。
5. 逻辑运算符逻辑运算符用于执行逻辑运算,包括与(&&)、或(||)和非(!)运算。
它们通常用于条件判断和逻辑组合中,能够帮助程序员处理复杂的逻辑关系。
6. 位运算符位运算符用于对整数类型的数值进行位操作,包括按位与(&)、按位或(|)、按位取反(~)、按位异或(^)和左移(<<)、右移(>>)等。
位运算符在处理底层数据操作时十分重要。
7. 条件运算符条件运算符(?:)是C语言中唯一的三目运算符,用于根据条件的真假选择不同的值。
它使得代码更加简洁和可读性更强。
8. sizeof运算符sizeof运算符用于获取数据类型或变量的字节大小,它在编程时经常用于内存分配和操作中。
c语言自增自减运算符的变量类型
c语言自增自减运算符的变量类型在计算机编程中,C语言是一种非常常见和重要的编程语言之一。
在C 语言中,自增和自减运算符是非常基础和常用的运算符。
它们通常用于增加或减少变量的值。
在这篇文章中,我将以深度和广度的方式探讨C语言中自增自减运算符的变量类型,并分享一些我个人的观点和理解。
1. 变量类型的概念在C语言中,变量类型是非常重要的概念。
C语言中的每个变量都具有特定的数据类型,它决定了变量所能表示的值的范围和存储方式。
常见的变量类型包括整型、浮点型、字符型等。
在使用自增和自减运算符时,变量的类型会影响到运算结果。
2. 整型变量的自增自减运算对于整型变量而言,自增运算符(++)会使变量的值增加1,自减运算符(--)会使变量的值减少1。
不同的整型变量(如int、short、long等)在进行自增自减运算时,可能会有不同的表现,特别是在涉及到溢出和上溢的情况下。
对于无符号整型变量,在达到最大值后再进行自增操作会导致变量的值变为0。
3. 浮点型变量的自增自减运算在C语言中,浮点型变量是用来表示实数的,它包括float和double 两种类型。
对于浮点型变量而言,自增自减运算并不常见,因为它们通常被用于表示具有实际意义的数值,而非作为计数器使用。
在实际编程中,应该谨慎使用自增自减运算符来操作浮点型变量,以避免精度丢失或意外的结果。
4. 字符型变量的自增自减运算字符型变量在C语言中被用来表示单个字符,它们对应着ASCII码或Unicode码中的数值。
字符型变量可以进行自增自减运算,这其实是对字符编码值的增减操作。
一个字符型变量的值为'A',对其进行自增操作后,其值将变为'B'。
字符型变量的自增自减运算在某些情况下可以用于字符集的遍历和操作。
5. 总结与展望通过以上对C语言中自增自减运算符的变量类型的讨论,我们可以发现不同类型的变量在进行自增自减运算时会有不同的表现,特别是在涉及到溢出和精度的问题时。
c语言运算符号
运算符号
01 种类
03 C语言发展
目录
02 运算符号的优先级 04 有关概念
基本信息
C语言运算符号指的是运算符号。C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作 运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
种类
种类
算术运算符 用于各类数值运算。包括加(+)、减(-)、乘()、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七 种。 关系运算符 用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 逻辑运算符 用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>) 六种。 赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=) 三类共十一种。
结合方向左结合双目运算符 ==等于运算符 (判断) !=不等于运算符(判断)
8、优先级8级
结合方向左结合双目运算符 &按位与运算符
9、优先级9级
结合方向左结合双目运算符 ^按位异或运算符
10、优先级10级
结合方向左结合双目运算符 |按位或运算符举例:0xfe|0xef即为1111 1110与1110 1111按位或运算则答案为:1111 1111即0xff。Βιβλιοθήκη 运算符号的优先级01
c语言各种运算符的运算规则
c语言各种运算符的运算规则C语言中有很多种运算符,每种运算符都有其特定的运算规则。
以下是一些主要的运算符及其运算规则:1. 算术运算符:包括 `+`、`-`、``、`/` 和 `%`。
`+` 和 `-` 运算符用于加法和减法。
`` 运算符用于乘法。
`/` 运算符用于除法,但要注意除数不能为0,否则会导致程序错误。
`%` 运算符用于求模(取余数),同样除数不能为0。
2. 赋值运算符:包括 `=`、`+=`、`-=`、`=`、`/=` 和 `%=`。
`=` 用于简单的赋值。
其他如 `+=`、`-=` 等是先进行算术运算,再进行赋值。
3. 比较运算符:包括 `>`、`<`、`>=`、`<=` 和 `==`。
这些运算符用于比较两个值的大小或是否相等。
结果是布尔值,真(1)或假(0)。
4. 逻辑运算符:包括 `&&`、`` 和 `!`。
`&&` 表示逻辑与,当且仅当两个操作数都为真时,结果才为真。
`` 表示逻辑或,只要有一个操作数为真,结果就为真。
`!` 表示逻辑非,用于反转操作数的逻辑状态。
5. 位运算符:包括 `&`、``、`^`、`~`、`<<` 和 `>>`。
这些运算符用于处理二进制位级别的操作。
6. 条件运算符(三目运算符):格式为 `条件 ? 值1 : 值2`。
如果条件为真,则结果是值1,否则结果是值2。
7. 逗号运算符:格式为 `表达式1, 表达式2, ... , 表达式n`。
从左到右依次计算每个表达式,最终返回最右边的表达式的结果。
8. sizeof运算符:用于获取数据类型或变量在内存中的大小(以字节为单位)。
9. 类型转换运算符:包括 `(type)`。
用于强制转换数据类型。
10. 括号运算符:格式为 `(expression)`。
用括号可以改变默认的运算顺序(先乘除后加减,先括号内后括号外)。
11. 指针运算符:包括 `` 和 `&`。
编程中常见运算符的优先级
编程中常见运算符的优先级在计算机编程中,运算符是用来执行各种数学和逻辑运算的符号。
在进行复杂的计算时,了解运算符的优先级是非常重要的,因为它决定了表达式中各个运算符的执行顺序。
本文将介绍一些常见的运算符以及它们的优先级。
1. 算术运算符的优先级算术运算符是用来执行基本的数学运算的符号,包括加法、减法、乘法、除法等。
在算术运算中,乘法和除法的优先级高于加法和减法。
例如,在表达式"2 + 3 * 4"中,乘法运算先于加法运算,所以先计算3 * 4,再加上2,最后得到14。
2. 关系运算符的优先级关系运算符用于比较两个值之间的关系,例如等于、大于、小于等。
在关系运算中,等于、不等于、大于、小于、大于等于和小于等于的优先级都相同,并且低于算术运算符。
例如,在表达式"2 + 3 * 4 > 10"中,先计算3 * 4,再加上2,然后比较结果是否大于10。
3. 逻辑运算符的优先级逻辑运算符用于对布尔值进行逻辑运算,例如与、或、非等。
在逻辑运算中,非运算的优先级最高,其次是与运算,最后是或运算。
例如,在表达式"!true && false || true"中,先进行非运算,再进行与运算,最后进行或运算。
4. 赋值运算符的优先级赋值运算符用于将一个值赋给一个变量。
在赋值运算中,赋值运算符的优先级最低,所以它是从右向左结合的。
例如,在表达式"a = b = 5"中,先将5赋给b,然后将b的值赋给a。
5. 其他运算符的优先级除了上述常见的运算符外,还有一些其他运算符,例如位运算符、条件运算符等。
这些运算符的优先级在不同编程语言中可能有所不同,所以在编写代码时需要查阅相应的文档或参考资料。
总结:了解运算符的优先级对于编写正确的代码非常重要。
在编程中,运算符的优先级决定了表达式中各个运算符的执行顺序,从而影响最终的计算结果。
c语言自增运算符与赋值运算符
c语言自增运算符与赋值运算符C语言的自增和赋值运算符在程序设计中扮演着重要的角色。
它们不仅能够提高代码的效率,还能简化编程过程。
首先,我们先来了解一下C语言的自增运算符。
自增运算符由两个加号(++)表示,通常用于增加一个变量的值。
例如,当我们有一个变量x,如果我们使用x++语句,则会将x的值增加1。
这个过程在编程中经常用于循环控制以及计数器的自增操作。
例如,如果我们需要循环10次,我们可以使用一个计数器变量,每次循环结束后使用自增运算符将其值增加1,直到达到所需的循环次数。
自增运算符还有一个重要的特点就是它可以放在变量的前面或后面。
如果我们使用++x语句,则会先将x的值加1,然后进行其他操作;而如果我们使用x++语句,则会先进行其他操作,再将x的值加1。
这个特性在特定的编程场景中非常有用,可以灵活地使用自增运算符。
接下来,让我们来了解一下C语言的赋值运算符。
赋值运算符用于将一个值赋给变量。
常用的赋值运算符是等号(=),例如x = 5将5赋给变量x。
赋值运算符可以将任何类型的数据赋给变量,包括整数、浮点数、字符等等。
此外,C语言还提供了一些其他的赋值运算符,如+=、-=、*=、/=等,它们可以在赋值的同时进行其他运算操作。
例如,x += 5相当于x = x + 5,即将变量x的值增加5。
赋值运算符在编程中起到了非常重要的作用。
它不仅可以初始化变量的值,还可以更新变量的值。
在循环和条件语句中,赋值运算符可以帮助我们更方便地控制变量的变化。
此外,赋值运算符还可以简化代码,使代码更加清晰易读。
在使用自增和赋值运算符时,我们需要注意一些细节。
首先,自增运算符具有优先级较高的特点。
例如,如果我们对一个变量进行多次自增运算,编译器会首先执行自增操作,而后进行其他运算。
此外,自增运算符只能应用于可修改的变量,不能应用于常量或表达式。
另外,赋值运算符在使用时要注意变量的类型。
C语言是一种强类型语言,对于不同类型的变量,不能进行直接的赋值操作,需要进行类型转换。
c语言 表达式
v-=e
v *= e v /= e v %= e
a+=1 b-=c+1
a=a+1 b=b-(c+1)
i*=j/k
1、 2、 3、 4、 a x x x
i=i*(j/k)
a + 3; x*(y+8) x % 3; -(y+2)
+= 3; 等价语句 a = *= y + 8; 等价语句 x = %= 3; 等价语句 x = - =(y+2);等价语句 x=x
4.2 赋值运算符
4.2.1 简单赋值 赋值表达式 一般形式:<变量> <赋值运算符> <表达式>
特点:1、赋值表达式的值是被赋值变量的值
2、赋值表达式中的“表达式”也可以是赋值表达式 例:赋值表达式: a = 5
/*表达式的值是被赋值变量的值 */
赋值语句: a = 5;
a = (b = 5) a=b=5 a=(b=4)+(c=6)
• 变量可以作为左值; • 而表达式就不能作为左值(如a+b); • 常量也不能作为左值。 右值 (rvalue) :出现在赋值运算符右侧的表达式 • 左值也可以出现在赋值运算符右侧,因而左值都可以作为右值。 • 赋值表达式中的“表达式”,又可以是一个赋值表达式。
例如: a=(b=5)
• 下面的例子都是非法的:
是先增1再调用
Hale Waihona Puke 需要记住的是,后缀++和后缀--比一元的正号、负号优先级 高,而且都是左结合的。前缀++和前缀--与一元的正号、负 号优先级相同,而且都是右结合的。 自增自减运算符的运算对象只能是变量,而不能用于常量或 表达式。 如:5++,(a+b)++都是错误的 例: i=3;
c语言基本运算
c语⾔基本运算计算机的基本能⼒就是计算,所以⼀门程序设计语⾔的计算能⼒是⾮常重要的。
C语⾔之所以⽆所不能,是因为它不仅有丰富的数据类型,还有强⼤的计算能⼒。
C语⾔⼀共有34种运算符,包括了常见的加减乘除运算。
这讲就对C语⾔中的运算符做⼀个详细介绍。
⼀:算术运算符算术运算符⾮常地简单,就是⼩学数学⾥⾯的⼀些加减乘除操作。
不过呢,还是有⼀些语法细节需要注意的。
1.加法运算符 +1 int a = 10;23 int b = a + 5;在第3⾏利⽤加法运算符 + 进⾏了加法运算,再将和赋值给了变量b,最终变量b的值是152.减法运算符或负值运算符 -1 int b = 10 - 5;23 int a = -10;1> 在第1⾏利⽤减法运算符 - 进⾏了减法运算,再将差赋值给了变量b,最终变量b的值是52> 在第3⾏中,这个 - 并不是什么减法运算符,⽽算是⼀个负值运算符,-10代表的是负⼗3.乘法运算符 *1 int b = 10 * 5;注意:乘法运算符并不是x或者X,⽽是星号*。
变量b最终的值是50。
4.除法运算符 /1 double a = 10.0 / 4;2 double b = 10 / 4;34 printf("a=%f, b=%f \n", a, b);注意:除法运算符并不是÷,⽽是⼀个正斜杠 /1> 第1⾏中的10.0是浮点型,4是整型,因此会将4⾃动类型提升为浮点型后再进⾏运算,最后变量b的值是2.52> 第2⾏中的10和4都是整型,计算机中的运算有个原则:相同数据类型的值才能进⾏运算,⽽且运算结果依然是同⼀种数据类型。
因此,整数除于整数,求出来的结果依然是整数,会损失⼩数部分。
最后变量b的值是2。
查看输出结果:3> 如果想让整数除于整数不损失精度的话,可以将某个整数强制转换为浮点型数据1 double a = (double)10 / 4;23 double b = 10 / (double)4;45 double c = (double)10 / (double)4;67 double d = (double) (10 / 4);10和4之间只要有1个强转为浮点型数据即可,另外1个整数会⾃动类型提升为浮点型数据。
c语言运算符优先级规律
c语言运算符优先级规律
C语言运算符的优先级规律如下:
1. 括号优先级最高,可以用括号改变运算次序。
2. 单目运算符的优先级次之,例如取地址符&、取值符*、逻辑非!等。
3. 算术运算符、关系运算符、逻辑运算符的优先级相对较低,左结合性。
4. 赋值运算符的优先级相对较低,右结合性。
5. 条件运算符?:的优先级低于逗号运算符,从右到左结合。
6. 逗号运算符的优先级最低,左结合性。
需要注意的是,如果两个运算符的优先级相同,那么就要根据结合性来确定运算次序,例如算术运算符和位运算符的优先级相同,都是从左到右结合。
