第七章运算符和表达式
第七章 运算符和表达式
7.1运算符 ■算术运算符:+、一、米、/、% ■关系运算符:>、 & ■赋值运算符:=及其扩展赋值运算符 ■条件运算符:?: ■逗号运算符:, ■指针运算符:*、& ■求字节数运算符: f ■强制类型转换运算符:(类型) 分量运算符: 下标运算符:[] ■自加、自减运算符:+ ■其它:如函数调用运算符() 第七章运算符和表达式
第七章 运算符和表达式 7.1 运算符 ◼算术运算符 :+、-、*、/、% ◼关系运算符:>、=、>、~、|、^、& ◼赋值运算符:=及其扩展赋值运算符 ◼条件运算符:?: ◼逗号运算符:, ◼指针运算符:*、& ◼求字节数运算符:sizeof ◼强制类型转换运算符:(类型) ◼分量运算符:.、-> ◼下标运算符:[ ] ◼自加、自减运算符:++、-- ◼其它:如函数调用运算符()
72表达式 ■由运算符加上运算对象就构成了表达式,C语 言允许使用以下类型的表达式: (1)赋值表达式,如:a=5 (2)算术表达式,如:3+4*2 (3)关系表达式,如:5>6 (4)逻辑表达式,如:3>58&a>=b (5)条件表达式,如:a>b?a:b (6)逗号表达式,如:a=3b=4,c=5 第七章运算符和表达式
第七章 运算符和表达式 7.2 表达式 ◼ 由运算符加上运算对象就构成了表达式,C语 言允许使用以下类型的表达式: (1)赋值表达式,如:a=5 (2)算术表达式,如:3+4*2 (3)关系表达式,如:5>6 (4)逻辑表达式,如:3>5&&a>=b (5)条件表达式,如:a>b?a:b (6)逗号表达式,如:a=3,b=4,c=5
73表达式的求值规则 c语言中的任何一个表达式都有一个确 定的值,表达式的求值规则如下: (1)按运算符的优先级高低次序执行。 (2)如果在一个运算对象(或称操作数) 两侧的运算符的优先级相同,则按C语言 规定的结合方向(结合性)进行 第七章运算符和表达式
第七章 运算符和表达式 7.3 表达式的求值规则 ◼ C语言中的任何一个表达式都有一个确 定的值,表达式的求值规则如下: (1)按运算符的优先级高低次序执行。 (2)如果在一个运算对象(或称操作数) 两侧的运算符的优先级相同,则按C语言 规定的结合方向(结合性)进行
73表达式的求值规则 ■优先级,是指在表达式中,运算符优先 级较高的先于优先级较低的进行运算 结合性,是指当一个操作数两侧的运算 符具有相同的优先级时,该操作数是先 与左边的运算符结合,还是先与右边的 运算符结合。自左至右的结合方向,称 为左结合性,反之称为右结合性。 单目运算符、条件运算符和赋值运算符 是右结合性,其他运算符是左结合。 第七章运算符和表达式
第七章 运算符和表达式 ◼ 优先级,是指在表达式中,运算符优先 级较高的先于优先级较低的进行运算。 ◼ 结合性,是指当一个操作数两侧的运算 符具有相同的优先级时,该操作数是先 与左边的运算符结合,还是先与右边的 运算符结合。自左至右的结合方向,称 为左结合性,反之称为右结合性。 ◼ 单目运算符、条件运算符和赋值运算符 是右结合性,其他运算符是左结合。 7.3 表达式的求值规则
74算术表达式 算术表达式中,运算对象可以是常量, 变量和函数等 1.基本算术运算符 基本算术运算符有如下5种: +(加法)、-(减法)、*(乘法)、八除法)、 %(求余数) 第七章运算符和表达式
第七章 运算符和表达式 ◼ 算术表达式中,运算对象可以是常量, 变量和函数等。 1.基本算术运算符 基本算术运算符有如下5种: +(加法)、-(减法)、 *(乘法)、/(除法)、 %(求余数) 7.4 算术表达式
74算术表达式 ■说明: (1)除法运算“P”:C语言规定:两个整数相除, 其商为整数,小数部分被舍弃。如果相除的两 个数中至少有一个是实型的,则结果为实型。 (2)求余数运算“%”:求余数运算要求两侧的 操作数均为整型数据,否则出错。在 Turbo c 中,结果的符号与被除数的符号相同 第七章运算符和表达式
第七章 运算符和表达式 ◼ 说明: (1)除法运算“/”:C语言规定:两个整数相除, 其商为整数,小数部分被舍弃。如果相除的两 个数中至少有一个是实型的,则结果为实型。 (2)求余数运算“%”:求余数运算要求两侧的 操作数均为整型数据,否则出错。在Turbo C 中,结果的符号与被除数的符号相同。 7.4 算术表达式
74算术表达式 2.算术表达式 所谓算术表达式,是指表达式中的运算符都是 算术运算符。 在C语言中,整型、实型和字符型数据间可以 混合运算(因为字符数据与整型数据可以通 用),如果一个运算符两侧的操作数的数据类 型不同,则系统按“先转换,后运算”的原则 首先将数据自动转换成同一类型,然后在同 类型数据间进行运算。 第七章运算符和表达式
第七章 运算符和表达式 2.算术表达式 ◼ 所谓算术表达式,是指表达式中的运算符都是 算术运算符。 ◼ 在C语言中,整型、实型和字符型数据间可以 混合运算(因为字符数据与整型数据可以通 用),如果一个运算符两侧的操作数的数据类 型不同,则系统按“先转换,后运算”的原则, 首先将数据自动转换成同一类型,然后在同一 类型数据间进行运算。 7.4 算术表达式
74算术表达式 高 ouble←foat long unsigned 低 int←char, short 说明: (1)横向向左的箭头,表示必须的转换 (2)纵向向上的箭头,表示不同类型的转换 方向。 第七章运算符和表达式
第七章 运算符和表达式 7.4 算术表达式 说明: (1)横向向左的箭头,表示必须的转换。 (2)纵向向上的箭头,表示不同类型的转换 方向
74算术表达式 ■注意: 箭头方向只表示数据类型级别的高低, 由低向高转换,不要理解为int型先转成 unsigned型,再转成ong型,再转成 double型。如果一个int型数据与一个 double型数据运算,是直接将int型转成 doub|e型。 第七章运算符和表达式
第七章 运算符和表达式 ◼ 注意: 箭头方向只表示数据类型级别的高低, 由低向高转换,不要理解为int型先转成 unsigned型,再转成long型,再转成 double型。如果一个int型数据与一个 double型数据运算,是直接将int型转成 double型。 7.4 算术表达式