第三讲运算符和表达式 表达式 二、算术运算符和算术表达式 三、标准库函数调用 四、算术表达式中数据类型的转换
第三讲 运算符和表达式 一、表达式 二、算术运算符和算术表达式 四、算术表达式中数据类型的转换 三、标准库函数调用
五、赋值运算 1、赋值运算符和赋值表达式 2、复合赋值运算 六、增量运算符与增量表达式 七、逗号运算符与逗号表达式
六、增量运算符与增量表达式 七、逗号运算符与逗号表达式 五、赋值运算 1、赋值运算符和赋值表达式 2、复合赋值运算
、表达式 表达式:由常量、变量、函数和运算符组成的式 子称为表达式。 例:计算圆面积的语句: s=3.14159*r*r 该语句中,r,3.14159,3.14159*r, 314159*r*r,s=3.14159*r*r都是表达式 其中,*是运算符,r是变量,3.14159是常量
一、表达式 表达式:由常量、变量、函数和运算符组成的式 子称为表达式。 例:计算圆面积的语句: s = 3.14159 * r * r ; 该语句中, r,3.14159,3.14159 * r , 3.14159 * r * r ,s = 3.14159 * r * r 都是表达式 其中,*是运算符,r是变量,3.14159是常量
表达式的求值规则,按照运算符的优先级和结合 性的规定顺序进行。 有的运算符只需要一个运算对象,这种运算符 称为单目运算符; 如-5中的(一)负号 ·需要两个运算对象的称为双目运算符; 如加(+),减(一),乘(*),除() 个表达式有一个值及其类型,它们等于计算表 达式所得结果的值和类型
表达式的求值规则,按照运算符的优先级和结合 性的规定顺序进行。 •有的运算符只需要一个运算对象,这种运算符 称为单目运算符; 如-5中的(-)负号 •需要两个运算对象的称为双目运算符; 如加(+),减(-),乘(*),除(/) 一个表达式有一个值及其类型,它们等于计算表 达式所得结果的值和类型
二、算术运算符和算术表达式 算术运算符:算术运算符用于各类数值运算。算 表达式中的运算对象都是算术量,即整型、实型 或字符型。 下表为基本的算术运算符: [运算符「运算规则」操作数数目「优先级结合方向 负号 单目 右结合 加法 双目 左结合 咸法 双目 2443 左结合 大 乘法 双目 左 除法 双目 左结合 求余或模 双目 左结合
二、算术运算符和算术表达式 算术运算符:算术运算符用于各类数值运算。算 表达式中的运算对象都是算术量,即整型、实型 或字符型。 运算符 运算规则 操作数数目 优先级 结合方向 - 负号 单目 2 右结合 + 加法 双目 4 左结合 - 减法 双目 4 左结合 * 乘法 双目 3 左结合 / 除法 双目 3 左结合 % 求余或模 双目 3 左结合 下表为基本的算术运算符:
>其中单目运算符负号(一)的优先级最高,为2 除法运算符“”进行求商运算。对于不同类型的 运算对象,除法表达式计算结果的类型也会不同。 例:计算x/y 如果xy是整型,则结果为整型,小数部分 被略去。 如果xy中有一个实型量,则x,y都被转化为 double类型进行运算,结果为 double类型量
➢其中单目运算符负号(-)的优先级最高,为2 ➢除法运算符“/”进行求商运算。对于不同类型的 运算对象,除法表达式计算结果的类型也会不同。 例:计算x/y •如果x,y是整型,则结果为整型,小数部分 被略去。 •如果x,y中有一个实型量,则x,y都被转化为 double类型进行运算,结果为double类型量
运算实例: x,y为整型量:52结果为2,整型量 2/5结果为0,整型量 xy其中一个为实型量: 50/2或52.0或50/2.0结果为25,实型量 “%”是求余运算。a%b计算a除以b后的余数,也 是a模b的值。它要求两个运算对象都是整型量,其 结果也是整型量 例:5%2结果为1 2%5结果为0
运算实例: x,y为整型量: 5/2结果为2,整型量 2/5结果为0,整型量 x,y其中一个为实型量 : 5.0/2或5/2.0或5.0/2.0结果为2.5,实型量 ➢“%”是求余运算。a%b计算a除以b后的余数,也 是a模b的值。它要求两个运算对象都是整型量,其 结果也是整型量。 例:5%2结果为1 2%5结果为0
例:将数学式改写成算术表达式 一般数学式算术表达式 la(b+c)+d ac (a*(b+c)+d)ac将方括号改成 圆括号,*不能省略 2 314159*r*r/2.0其中兀为非字 2 母字符,要用实型常量代替 x/(x+y)+1.0/x*y其中不能出现 x+y xy 分数,改用除法运算符,圆括号 不能缺少
例:将数学式改写成算术表达式 一般数学式 [a(b+c)+d]ac 2 2 r x y xy x 1 + + 算术表达式 (a*(b+c)+d)*a*c 将方括号改成 圆括号,*不能省略 x/(x+y)+1.0/x*y 其中不能出现 分数,改用除法运算符,圆括号 不能缺少 3.14159*r*r/2.0 其中 为非字 母字符,要用实型常量代替
例:基本数学运算符程序实例 main() 程序运行输出: & int a, b, cl, c2 i a=3,b=-7; cl=-2c2=-1 cl=b/a cl=0c2=3 c2=b%oa printf( cl=%d\tc2=%dn", cl, c2 ) cl=a/b: c2=a%obs printf( cl=%d\tc2=%dn", cl, c2 )
例:基本数学运算符程序实例 main ( ) { int a, b, c1, c2 ; a=3, b=-7 ; c1=b/a; c2=b%a; printf( "c1=%d\tc2=%d\n", c1,c2 ); c1=a/b; c2=a%b; printf( "c1=%d\tc2=%d\n", c1,c2 ); } 程序运行输出: c1=-2 c2=-1 c1=0 c2=3
三、标准库函数调用 对于某些数学运算,如求平方根,指数、对数 运算,C语言中有标准库函数对其进行计算 调用函数格式: 函数名(参数,参数,…) 其中函数名有由系统提供,不同C的编译系统, 提供的函数名不同,使用时需查阅相关手册。 ·调用函数时,参数的类型必须与系统规定一致
三、标准库函数调用 •对于某些数学运算,如求平方根,指数、对数 运算,C语言中有标准库函数对其进行计算。 •调用函数格式: 函数名(参数,参数,…) •其中函数名有由系统提供,不同C的编译系统, 提供的函数名不同,使用时需查阅相关手册。 •调用函数时,参数的类型必须与系统规定一致