a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 36|回复: 0

[C语言] 计算机等考二级C语言精编教程:第二章(5)

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
2.5 算术表达式  2.5.1 基本的算术运算符# `: E2 M  y" f: ^
  在C语言中,基本的算术运算符是:+、-、*、/、%,分别为加、减、乘、除、求余运算符。这些运算符需要两个运算对象,称为双目运算符。除求余运算符%外,运算对象可以是整型,也可以是实型。如1+2、1.2*3.2。1 J3 U; l0 m* Z
  求余运算符的运算对象只能是整型。在%运算符左侧的运算数为被除数,右侧的运算数为除数,运算结果是两数相除后所得的余数。当运算数为负数时,所得结果的符号随机器的不同而不同。
* W* q0 r0 c9 z% }, r8 }  “+”和“-”也可用作单目运算符,运算符必须出现在运算数的左边。运算数可为整型,也可为实型。如:-54、+3.9。
/ {) ]4 g! u- h7 U) R, m2 e! U4 I  说明:
/ ^8 \3 b: |" @' c" r3 {& f  (1)如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。例如:1.0/2.0,其运算结果为0.5;1/2,其运算结果为O。3 R# o3 v# L2 B- X$ h4 |* f
  (2)如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边的类型达到一致后,再进行运算。1 Z7 F/ C2 ^) ?2 [, Q; V/ Z
  (3)在C语言中,所有实型数的运算均以双精度方式进行。若是单精度数,则在尾数部分添0,使之转化为双精度数。% _0 [; ?, p) |% |/ {$ }( ^9 K1 R
  2.5.2 运算符的优先级、结合性和算术表达式
# a4 U7 z3 u3 p, j3 j6 I" [9 Q  在C语言中,常量、变量、函数调用以及按C语言语法规则用运算符把运算数连起来的式子都是合法的表达式。凡是表达式都有一个值,即运算结果。
) f, C2 y; d7 ^% O" V  一、算术运算符的优先级4 a6 r4 z: }, w, l8 Z6 F! i
  算术运算符和圆括号的优先级高低次序如下:) Y3 a9 E# ?; |

/ S% l) E4 l2 g" J9 z! m
! }4 Q* m' I4 I. ]* r  二、算术运算符和圆括号的结合性
! l& C. o2 X: t  以上所列的运算符中,只有单目运算符“+”和“-”的结合性是从右到左的,其余运算符的结合性都是从左到右。
& n9 I. {6 _( p% \3 |  例如:表达(5+1)/2的运算结果是3,圆括号的优先级高于除号;表达式5+1/2的运算结果是5,除号的优先级高于加号;表达式5*-2的褥算结果是-1O,单目运算符“-”的优先级高于乘号,这个表达式与5*(-2)等价。: x9 E9 e6 _8 ~7 Y. m# p$ o' l
  三、算术表达式
( z3 K% R, ?+ g, B, F5 Y8 P# o  用算术运算符和一对圆括号将运算数(或称操作数)连接起来的、符合C语言语法的表达式称为算术表达式。# w( t- V" E; v" @& J& O7 j
  算术表达式中,运算对象可以是常量、变量和函教等。例如:2+sqrt(c)*b。
) {/ R* K- B0 J+ G4 e1 B; `' }  在计算机语言中,算术表达式的求值规律与数学中四则运算的规律类似,其运算规则和要求如下:+ o* V4 F" C; e; {, S8 b
  (1)在算术表达式中,可使用多层圆括号,但左右括号必须配对。运算时从内层圆括号开始,由内向外依次计算表达式的值。5 j  S# b0 k# \( X! ]& J
  (2)在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级由高到低进行;若表达式中运算符的级别相同,则按运算符的结合方向进行。例如表达式a+b-c,因为+号和-号的优先级相同,它们的结合性为从左到右,因此先计算a+b,然后把所得结果减去c的值。
6 Z8 d' \. t) p; F4 z  2.5.3 强制类型转换表达式* x4 L+ P$ g# B, O* L- \" `1 }
  强制类型转换表达式的形式如下:
5 ^/ P/ s8 t$ c" f& q" z  (类型名)(表达式)
+ X% ~6 w6 a: {# I8 p1 h  上述形式中,(类型名)称为强制类型转换运算符,利用强制类型转换运算符可以将一个表达式的值转换成指定的类型,这种转换是根据人为要求进行的。例如:表达式(int)3.234把3.234转换成整数3;表达式(double)(10%3)把10%3所得结果1转换成双精度数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-13 17:07 , Processed in 0.168762 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表