文档详情

第2章 顺序结构程序设计.ppt

发布:2025-02-25约9.23千字共101页下载文档
文本预览下载声明

自动类型转换与强制类型转换2.赋值运算中的自动类型转换(1)将浮点型(float、double)数据赋给整型变量,将浮点型数据转换成整型,去掉其小数部分,再赋予整型变量。如:intx;x=4.6;自动类型转换与强制类型转换2.赋值运算中的自动类型转换(2)将整型数据赋值给浮点型(float、double)变量,保持整型数据数值不变,转换成浮点型(float、double)数据,再赋值给整型变量。如:floatf;f=100;自动类型转换与强制类型转换2.赋值运算中的自动类型转换(3)将float类型数据赋值给double类型变量,保持float类型数据数值不变,将其转换成double类型,即扩展至8个字节存储空间,有效位数扩展到15位,再赋值给double类型变量。自动类型转换与强制类型转换2.赋值运算中的自动类型转换(4)将double类型数据赋值给float类型变量,将double类型转换为float类型,即只取6~7位有效数字,存储到float类型变量的4个字节中。应注意double类型数值大小不能超出float类型变量的数值范围,如:doubled=1.100000000004e100;floatf;/*定义float类型变量f*/f=d;/*将d的值赋给变量f,错误*/自动类型转换与强制类型转换2.赋值运算中的自动类型转换(5)将字符型数据(char)赋给整型变量,将字符的ASCII码赋给整型变量,如:inti;/*定义整型变量i*/i=‘a’;/*将’a’的ASCII码97赋给i,i值为97*/自动类型转换与强制类型转换2.赋值运算中的自动类型转换(6)将较短的整型数据(包括字符型)赋给较长的整型变量,如将shortint型数值赋给longint型,扩展较短整型数的表示位数再赋值自动类型转换与强制类型转换2.赋值运算中的自动类型转换(7)将较长整型数据赋值给较短整型变量或字符变量,如将int型数据赋值给char型变量,发生截断操作,只保留其低字节,舍弃高位部分。自动类型转换与强制类型转换3.强制类型转换形式如下:(数据类型)表达式inti=1,j=5;doublef=4.5;f=(double)i/j;i=(int)4.3%(int)f+3;C语言的其它运算(1)算术运算符+-*/%+(正号)-(负号)(2)自增自减运算符++--(3)关系运算符====!=(4)逻辑运算符!||(5)赋值运算符=+=-=*=/=%=以及其它扩展复合赋值运算(6)位运算符~|∧(7)条件运算符?:(8)逗号运算符,(9)指针运算符*(10)求字节数运算符sizeof()(11)成员运算符.-(12)下标运算符[]不同类型的变量2.浮点类型变量【例2.4a】下面程序声明了一个float类型的变量a和一个double类型的变量b,然后都赋值为浮点型常量5.6。#includestdio.hintmain(void){ floata; /*声明float类型变量a*/ doubleb; /*声明double类型变量b*/ a=5.6; /*为a变量赋值*/ b=5.6; /*为b变量赋值*/ printf(%f\n%f\n,a,b);/*将a和b的值依次在%f处替换显示*/ return0;}我们注意到,程序编译时,会出现如下警告信息: warningC4305:=:truncationfromconstdoubletofloat 这是因为VC编译系统把所有的实数都作为双精度数处理,即系统将浮点型常量5.6是当做双精度浮点类型即double类型的数据的,而变量a是单精度浮点类型即float类型变量。因此提醒用户:将double型常量赋值给float型变量可能会造成精度损失。

显示全部
相似文档