各类数值型数据间的混合运算 整型、单精度、双精度及字符型数据可 以进行混合运算。当表达式中的数据类型 不一致时,首先转换为同一类型,然后再 进行运算。C语言有两种方法实现类型转 换: 自动类型转换 ·强制类型转换 目标要求 进课提塌 讲课内客 课后作业 P44
目标要求 讲课提纲 讲课内容 课后作业 退出 整型、单精度、双精度及字符型数据可 以进行混合运算。当表达式中的数据类型 不一致时,首先转换为同一类型,然后再 进行运算。C语言有两种方法实现类型转 换: ◼ 自动类型转换 ◼ 强制类型转换 各类数值型数据间的混合运算 P44
●●● 自动类型转换 C编译系统自动完成,转换方向见图所示。 double float char ch;int i;float f;double d; 高 ch/i f*d (f+i) long int doubledouble int doubledouble unsigned 说明: double 必定的转换 低 int char,short double 运算对象类型不同时转换 图2.2 且标要求 讲课提坝 进课内 课后馆业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 说明: 必定的转换 运算对象类型不同时转换 int int double double double double double double ch/i + f*d - (f+i) char ch; int i; float f; double d; C编译系统自动完成,转换方向见图所示。 自动类型转换
强制类型转换 强制类型转换。 程序的运行结果是: main() x=4.500000,i=4 float x; int i; x=4.5; i=(int)x; /*强制类型转换*/ printf("x=%f,i=%d\n",x,i) 类型转换过程中,当数据类型由低向高转换时, 数据精度不会受到损失;而数据类型由高到低的转换, 此时,数据精度会受到损失。 且标要求(进课提,)讲课内字)( 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 强制类型转换 ◼ 强制类型转换是指通过强制类型转换运算符,将 表达式的类型强制转换为所指定的类型。 ◼ 强制类型转换运算符 : 一般形式:(类型名)(表达式) 例 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整型) (float)(5%3) (将5%3的值转换成float型) 说明:强制转换得到所需类型的中间变量, 原变量类型不变。 强制类型转换。 main() { float x; int i; x=4.5; i=(int)x; /*强制类型转换 */ printf("x=%f,i=%d\n",x,i); } 程序的运行结果是: x=4.500000, i=4 类型转换过程中,当数据类型由低向高转换时, 数据精度不会受到损失;而数据类型由高到低的转换, 此时,数据精度会受到损失
《C语言程序设计》 第四章选择结构
《 C语言程序设计》 第四章 选择结构
关系运算符和关系表达式 ● 关系运算符 <= 优先级6(高) 种类:<、 <=、 ==、>=、 结合方向:自左向右 优先级别: 优先级7(低) 关系表达式的值:是逻辑值“直”或“假”,用1和0表 例 int a=3,b=2,c=1,d,f; a>b /表达式值1 (a>b)==c /表达式值1 d=a>b /d=1 f=a>b>c /f=0 且标要求 进课提场 讲课内客 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 关系运算符和关系表达式 ◼ 关系运算符 ◼种类:< 、<=、 ==、 >=、 > 、!= ◼结合方向:自左向右 ◼优先级别: < <= > >= == != 优先级6(高) 优先级7(低) 例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==b<c //a==(b<c) a=b>c //a=(b>c) ◼关系表达式的值:是逻辑值“真”或“假”,用1和0表 例示int a=3,b=2,c=1,d,f; a>b //表达式值1 (a>b)==c //表达式值1 d=a>b //d=1 f=a>b>c //f=0