正文

C++ 第2章  数据类型与表达式【6】  C++的运算符2008-08-15 12:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/37607.html

分享到:

 

C++的运算符十分丰富,使得C++的运算十分灵活方便。例如把赋值号(=)也作为运算符处理,这样,a=b=c=4就是合法的表达式,这是与其他语言不同的。C++提供了以下运算符:
(1) 算术运算符
    +()-() *() /()  %(整除求余)++(自加) --(自减)
(2) 关系运算符
(大于)(小于)  ==(等于)>=(大于或等于)<=(于或等于)!=(不等于)
 
() 逻辑运算符
&&(逻辑与) ||(逻辑或)  (逻辑非)
() 位运算符
<<(按位左移)  >>(按位右移)  (按位与)  |(按位或)     (按位异或)  ~(按位取反)
() 赋值运算符 (=及其扩展赋值运算符)
() 条件运算符 (?:)
() 逗号运算符 ()
() 指针运算符 (*)
(9)   引用运算符和地址运算符 ()
(10) 求字节数运算符(sizeof)
(11) 强制类型转换运算符( (类型) 或类型( )
 
(12) 成员运算符 .
(13) 指向成员的运算符 ->
(14) 下标运算符 ([ ])
(15) 其他 (如函数调用运算符())
在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍。
 
2.5 算术运算符与算术表达式
 
2.5.1 基本的算术运算符
 
+(加法运算符,或正值运算符。如3+5+3
-(减法运算符,或负值运算符。如5-2-3
* (乘法运算符。如3*5)
/(除法运算符。如5/3
%(模运算符,或称求余运算符,%两侧均应为整型数据,如7%4的值为3)。
 
需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-5/3有的C++系统上得到结果-1,有的C++系统则给出结-2。多数编译系统采取向零取整的方法,即5/3值等于1-5/3的值等于-1,取整后向零靠拢。
如果参加+, -, *, / 运算的两个数中有一个数为float型数据,则运算的结果是double型,因为C++在运算时对所float型数据都按double型数据处理。
 
2.5.2 算术表达式和运算符的优先级与结合性
 
用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C++语法规则的式子,称C++算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C++算术表达式:
a*b/c-1.5+a
C++语言规定了运算符的优先级和结合性。在求解表达式时,先按运算符的优先级别高低次序执行,例如先乘除后加减。如有表达式a-b*cb的左侧为减号,右侧为乘号,而乘号优先于减号,因此,相当于a-(b*c)。如果在一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的结合方向处理。
 
C++规定了各种运算符的结合方向(结合性),算术运算符的结合方向为自左至右,即先左后右,因此b与减号结合,执行a-b的运算,再执行加c的运算。左至右的结合方向又称左结合性,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为自右至左,即右结合性(例如赋值运算符)。关于结合性的概念在其他一些高级语言中是没有的,是CC++的特点之一,希望能弄清楚。附录B列出了所有运算符以及它们的优先级别和结合性。

阅读(1928) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册