《C程序设计》教案_9048.pptVIP

  • 24
  • 0
  • 约9.12千字
  • 约 50页
  • 2015-12-04 发布于湖北
  • 举报
* 七、不同类型之间的混合运算 double long char, short unsigned int float 高 低 水平方向为必转,竖直方向为不同类型数据混合运算时转的方向,由低转高 * 八、算术运算符和算术表达式 (Arithmetic operator expression) 1.? C运算符 (1)?????? 算术运算符 (2)?????? 关系运算符 (3)?????? 逻辑运算符 (4)?????? 位运算符 (5)?????? 赋值运算符 (6)?????? 条件运算符 (7)?????? 逗号运算符 (8) 指针运算符 (9) 求字节数运算符 (10)强制类型转换运 算符 (11)分量运算符 (12) ?? 下标运算符 (13)其它 * 2、算术运算符和算术表达式 (1)+,-,*,/,%(作用举例) (2)结合方向:左结合性(Associativity),即运算对象先与左面的运算符相结合 (3)优先级(precedence): *,/,% +,- (4)强制类型转换运算符 系统自动转换/强制类型转换 (类型)表达式 (int)(3.14) 3 -5%3=-2 5 % (-3)=2 与被除数符号相同 * (5)自增、自减运算符 i++,i- -,先使用i的值,然后进行加1或减1运算 ++i,--i, 先进行加1或减1运算,然后使用i值 说明: 自增/自减运算符只能用于变量 结合方向是自右至左(右结合性)-i++,先执行i++运算,然后取负 经常用于对循环变量加1或指针变量加1 使用自增/自减运算符时要尽量避免歧义 * i=3 printf(“%d,%d”,i,(i++)+(i++)+(i++) ) TC:结果为6,12 VC:结果为3,9 用多个变量避免歧义 i+++j C编译系统尽可能多地自左至可将若干个字符组成一个运算符,所以等效于(i++)+j,但要尽量用括号避免歧义 * 3、 C语言常用的数学函数 函数名 功 能 函数名 功 能 sqrt(x) 计算x的平方根,x应大于等于0 exp(x) 计算ex的值 fabs(x) abs(x) 计算x的绝对值 pow(x,y) 计算xy的值 log(x) 计算lnx的值 sin(x) 计算sinx的值,x为弧度值 log10(x) 计算lgx的值 cos(x) 计算cosx的值,x为弧度值 函数的参数均为实型 * 九、赋值运算符和赋值表达式 1.? 赋值运算符 变量=表达式; 2.? 类型转换 当表达式与变量的类型不一致时,表达式将向变量的类型转换 (1)实型数赋给整型变量,自动取整 (2)整型数赋给实型数时,数值不变,以浮点 的方式存贮到变量中 (3)double数赋给float型变量时,截取前7位有效数字,存贮于32位单元中,不能溢出 * (4)float型数赋给double型变量时,数值不变,有效位扩展到16位,存贮在64位单元中 (5)字符型赋给整型时,字符数据放在整型变量的低8位。说明:当系统将字符处理为无符号数时,赋给整型时,高8位补0;当系统将字符处理为有符号数时,高8位补与字符最高位相同的8位数,称为符号扩展。 (6)将整型赋给字符型时,将整型的低8位赋给字符变量 (7)int型赋给long型变量时,进行符号扩展;long型赋给int型时,只取低16位 (8)unsigned int 型赋给long 型变量时,不进行符号扩展,高位补0; (9)将非unsigned型数据赋给长度相同的unsigned型变量,原样照赋 * 3、复合赋值运算符 在赋值运算符前加上其它运算符,构成符合运算符。 注:赋值号右端的表达式做为一个整体 凡是二元运算符(binary)都可以与赋值号一起组成复合赋值符 +=,-=,*=,/=,%=,=,=,=,^=,|= * 4、赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。 变量赋值运算符表达式 求解过程:将右侧表达式的值赋给左侧的变量,变量的值就是赋值表达式的值 a=5; a=(b=5);等价于b=5; a=b; 因为赋值运算符是右结合性 a+=a-=a*a, a的初值为12,结果为? -264 * 十、逗号运算符和逗号表达式 (Comma operator expression) 逗号运算符是所有运算符中优先级最低的;逗号不全做运算符,有时做为参数分隔符

文档评论(0)

1亿VIP精品文档

相关文档