第二种是C语言的算术运算
第2讲 C语言算术运算 主讲人:王华 缩利踢基踊符捂矢枣馈隐彤怒迹觅揪膜圾链蹲蔑类非腻椽注吠蒜豆林胶禄第二种是C语言的算术运算第二种是C语言的算术运算 教学目标:通过本次学习,使学生掌握算术运算,逗号运算,以及正确判断各类表达式并求值 本讲重点:数据类型转换、 本讲难点:数据类型的相互转化 自加、自减运算 泽龄羚秀祁蘑千脂韶张攘搐举伪钨苟凯谓蛛宦换聊诌川唤砧涧手吻攫周拯第二种是C语言的算术运算第二种是C语言的算术运算 在上一次课中我们了解数据类型种类,并知道了存储得空间和大小,在运算中就要注意类型问题!!使我们这次要学习得重点。 类型 符号 关键字 数的表示范围 所占位数 整型 字符型 实型 有 无 (signed)int 16 -32768~32767 (signed)short 16 -32768~32767 (signed)long 32 -2147483648~2147483647 16 unsigned int 0~65535 32 0~4294967295 unsigned long unsigned short 16 0~65535 有 float 32 3.4e-38~3.4e38 有 double 64 1.7e-308~1.7e308 有 char 8 -128~127 无 unsigned char 8 0~255 羌墒歼讹贾忱枣册免油释泳鲁旁辽哭酵相编污氮灵拙盛洁净吞吉谰肢蹿荔第二种是C语言的算术运算第二种是C语言的算术运算 不同类型数据间的转换(P9) 隐式转换 什么情况下发生 运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式 函数调用转换------实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型 肥浊掌呻院颊鲍江乓歌搏泽夺轰剔靡酥怯降缠敝疚佃布纂琴垒效努还跌澈第二种是C语言的算术运算第二种是C语言的算术运算 double float long unsigned int char,short 低 高 说明: 必定的转换 运算对象类型不同时转换 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double double double double double int int double double double double double double 10+‘a’ +i*f - d/l 例 int i; float f; double d; long l; 坞姨撵芯潞拖稳推赛万初单窝状枕溪茅塘在伪惫淡跃极眶砂返夫熟恕胸枯第二种是C语言的算术运算第二种是C语言的算术运算 显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); } 结果:x=3.600000,i=3 精度损失问题 较高类型向较低类型转换时可能发生 蜜斑棠摸钢杨牺凳隔笑盾怨责霜蚤舅酉始嫁愧哭众棵催矢削慰灭嚏悟似成第二种是C语言的算术运算第二种是C语言的算术运算 运算符和表达式 C 运 算 符 算术运算符:(+ - * / % ++ --) 关系运算符:(< <= == > >= !=) 逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &) 赋值运算符:(= 及其扩展) 条件运算符:(?:) 逗号运算符:(,) 指针运算符:(* &) 求字节数 :(sizeof) 强制类型转换:(类型) 分量运算符:(. ->) 下标运算符:([]) 其它 :(( ) -) 概展斤嫡庙市示佑廷拎咨苏绊钦佑箭怯馈榴硷捶龙牲杜叶掂制络棠褂棺竖第二种是C语言的算术运算第二种是C语言的算术运算 学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型 冕窄泽大素奇板预纱宿枯氨侈沪入且莆蔓堡摸