- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构c2(4节)
注意: 赋值运算符的两边数据类型不一致时: 例如,int a; a=(int)4.5; 4赋给a 例如,int a; a=4.5; 系统可自动转换: 可人为地转换: 自动转换成4 4赋给a 表达式的值为4 强制类型转换 说明: 赋值表达式的值与被赋值变量值获得的值相等,且可嵌套 例: a=12; a+=a-=a*a 例: int a=2; a%=4-1; a+=a*=a-=a*=3; //a=-264 等价于a=a+(a=a-(a*a)) //a=0 等价于a=a+(a=a*(a=a-(a=a*3))) 语言程序设计 第二章数据描述 C 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) //表达式值为5,a,b,c值为5 // b=5;a=5 //表达式值11,c=6,a=11 //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2 逗号运算符和表达式 1.逗号运算符 在所有运算符中优先级最低 结合性: 从左向右 , 2.逗号表达式 例 a=3*5, a*4 a=3*5, a*4, a+5 例 x=(a=3, 6*3) x=a=3, 6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); //a=15,表达式值60 //a=15,表达式值20 //赋值表达式,表达式值18,x=18 //逗号表达式,表达式值18,x=3 //1,2,3 //3,2,3 语言程序设计 第二章数据描述 C 形式:表达式1,表达式2, ······, 表达式n 逗号表达式的值:等于 表达式n 的值 【例2.4】逗号表达式的示例。 #include stdio.h main( ) {int a,b,x,y; a=(x=8, x%5 ); b=x=8, x%5 ; printf(%d,%d,%d, a, b, (y=2 , y*3)); } 运行结果 3,8,6 a的值变为3 b的值变为8 需输出的字符 格式要求 分隔符 逗号运算符 在此无意义 2.4不同类型数据间的转换 隐式转换 什么情况下发生 运算转换----不同类型数据混合运算时 赋值转换----把一个值赋给与其类型不同的变量时 输出转换----输出时转换成指定的输出格式 函数调用转换----实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型 语言程序设计 第二章数据描述 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; 显式转换(强制转换) 一般形式:(类型名)表达式 例 (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); } 精度损失问题 Ch2_007.c Ch2_008.c 结果:x=3.600000,i=3 语言程序设计 第二章数据描述 C 较高类型向较低类型转换时可能发生 第二章结束 * * * * 数据类型 常量与变量 运算符和表达式 不同类型数据间的转换 第二章 数据描述 2.1 数据类型 数据类型总表 C 数 据 类 型 基本类型
文档评论(0)