- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C语言课件_第3章
第 3章 表 达 式 ;3.1 表达式基础 ; (1) 算术运算符:+、?、*、/、%、++、??
(2) 关系运算符:、=、==、!=、、=。
(3) 逻辑运算符:!、、| |。
(4) 位运算符:、、~、|、^、。
(5) 赋值运算符:=、+=、?=、*=、/=、%=。
(6) 条件运算符:?:。
(7) 逗号运算符:,。
(8) 指针运算符:*、。
(9) 求字节数运算符:sizeof。
(10) 强制类型转换运算符:(类型)。
(11) 其它运算符;·?、→、(?)、[ ]等。; 2. 操作数
操作数是运算符的操作对象, 可以是常量、变量、函数与表达式。
常量、变量、函数本身就是简单表达式, 从一般意义上讲, C语言中所有操作数都是表达式。复杂表达式由运算符连接简单表达式形成。 ; 3.1.2 表达式的书写
C语言的表达式虽然来源于数学表达式, 是数学表达式在计算机中的表示, 但在书写时应该注意遵循C语言表达式书写的原则:
(1) C语言的表达式只能采用线性的形式书写。 例如:
① 应写成1/3+i+j*j*j。
② 应写成(a+b)/(c+d)*e+f。 ; (2) C语言的表达式只能使用C语言中合法的运算符和操作数, 对有些操作必须调用库函数完成, 而且运算符不能省略。例如:
① πr2应写成3.14159*r*r。
② 应写成0.5*a*b*sin(alph)。
③ |x-y|应写成fabs(x-y)。
④ y+2X 应写成y+pow(2, x)。 ; 3.1.3 表达式的分类
C语言表达式种类很多, 有多种分类方法。 我们一般依据运算的特征将表达式分为:
① 算术表达式, 如a+b*2.0-3.0/5.0。
② 关系表达式, 如x=y, 关系表达式可以认为是逻辑表达式的特殊情况。
③ 逻辑表达式, 如(x=2)(x=8)。
④ 赋值表达式, 如a=b=c=1。
⑤ 条件表达式, 如(ab)?a: b。
⑥ 逗号表达式, 如a=2, b=a*a, c=sqrt(b)。 ; 1.运算的优先级
运算的优先级是指运算执行的先后顺序。C语言将运算的优先级划分为15级,第1级优先级最高,第15级优先级最低。
初等运算(?)、[?]、→、·的优先级最高;
单目运算!、~、++、??、?、(类型)、*、、sizeof的优先级次高;
算术运算+、?、*、/、%再次之;
然后是关系运算、=、==、!=、、=;
再然后是逻辑运算、| |,条件运算式?:,赋值运算=、+=、?=、*=、/=、%=; ; 逗号运算优先级最低;
位运算优先级比较分散。
可将优先级顺序简单记忆为算术、关系和逻辑,移位、位逻辑在中间。请参阅附录B。
表达式求值时按运算的优先级别从高到低顺序进行,优先级相同的运算顺序由运算的结合性规定。
通过圆括号运算可以改变运算的优先顺序,先圆括号内,后圆括号外。 ; 2. 运算符的结合性
运算符的结合性是指, 优先级相同的运算从左到右进行(左结合性)还是从右至左进行(右结合性), 左结合性是人们习惯的计算顺序。
C语言中, 只有单目运算(!、 ~、 ++、 --、 -、 *、 )、条件运算(?: )、赋值运算(=、 +=、 -=、 *=、 /=、 %=)的结合性是右结合, 其余运算为左结合。 ; 3.类型转换
一般地,相应的运算只有相应类型的数据才能进行,不同类型数据进行运算时,要进行类型转换。
类型转换有自动转换与强制转换两种方式。
1) 自动转换
自动转换(又称隐含转换)由系统自动完成,转换的规则如图3-1所示。 ; 图3-1中,横向箭头方向表示必定要进行的转换,即short型、char型数据必定先转换成int型,float型数据必定先转换为double型,再进行运算。纵向箭头方向表示类型自动转换的方向,请注意转换的方向是由低向高转换的,int型最低,double型最高。int型与unsigne
文档评论(0)