- 1、本文档共144页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言-数据类型运算符和表达式
3.7 各类数值型数据间的混和计算 【例】 (5+8)*(6+4)显然(5+8)和(6+4)的计算应首先完成,但乘法的两个运算对象(5+8)和(6+4)哪一个先做? 运算对象求值顺序 C 语言对此没有明确规定。 程序里不应该写对求值顺序敏感的表达式。 运算符的结合性并不是总成立! 【例】 (1.0 + -3)+ (unsigned) 1 1.0 + (-3+ (unsigned) 1) 两个表达式不是等价的! 写法:(类型名)(表达式)表示要将指定表达式的计算结果转换成要求的类型。 3、强制类型转换运算符 【例如】:(int)(3.6*5.8)+6=int(20.88)+6=20+6=26(double)a(float)(5%3) 注意,表达式应该用括号括起来。 如果写成 (int)x+y则只将 x 转换成整型,然后与 y 相加。 main(){ float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d\n”,x,i);}运行结果:3.600000,i=3 【例3.8】强制类型转换 类型转换中可能会有信息丢失。 如果被转换的数据值在给定类型里无法表示,得到的结果无法预料。 C 语言允许任何两个数值类型之间的互相转换。 显式类型转换在语言里被作为一元运算符看待,具有与其他一元运算符同样的优先级和组合方式。 强制类型转换不改变变量原来的类型。 要点 自增、自减运算符的作用: 自增运算符++:使变量的值增一自减运算符--:使变量的值减一 4.自增、自减运算符 【例如】:int i;++i,--i (在使用i之前,先使i的值加(减)1)i++,i-- (在使用i之后,使i的值加(减)1) main(){ int i=3; printf(i=%d\n,i++); printf(i=%d\n,i); printf(i=%d\n,++i); printf(i=%d\n,i);} 运行结果:i=3i=4i=5i=5 【例子】 自增运算符(++)和自减运算符(--)只能用于变量,不能用于表达式。 注意 【例如】: i++、++i 是正确的用法 (i+j)++和++(i+j)及-i++ 是错误的用法。 ++和--的结合方向是“自右向左”。 【例如】: -i++ 相当于 –(i++) i++或i--作为表达式和作为语句的执行结果不同。 【例如】: 作为表达式 :i++ 等价于++i;都等价于i=i+1;作为语句 :y=i++;并不等价于 y=++i; 因为 y=i++;执行后 y 的值为3;y=++i;执行后 y 的值为4; #include stdio.h main(){ int i=3,k,m; m=8; k=-i++; printf(k=%d\n,k); printf(i=%d\n,i); k=++i+m++; printf(k=%d\n,k); printf(i=%d,m=%d\n,i,m);} 【例子】 运行结果:k=-3i=4 k=13i=5,m=9 (1)C 语言没有具体规定表达式中子表达式的求值顺序。 5.有关表达式使用中的问题说明 【例如】a=f1()+f2();执行时是先调用f1() 还是先调用f2() 并无具体规定。 【例如】 如果 i=3;求值表达式: (i++) + (i++) + (i++) 【例如】 如果 i=3;求值表达式: i + (i++) 3.5.3 字符数据在内存中的存储形式及其使用方法 每个字符型数据所占的内存单元数为一个字节(8个二进制位)。 既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。 C 语言使字符型数据和整型数据之间可以通用。 实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。 一个字符数据既可以以字符形式输出,也可以以整数形式输出。 以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符。然后输出。 以整数形式输出时,直接将ASCII码作为整数输出。 字符数据可以进行算术运算,相当于对它们的ASCII码进行算术运算。 【例】向字符变量赋以整数 main() { char c1,c2; c1=97; c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } c1=‘a’; c2=‘b’; 1 0 0 0 0 1 1 0 ‘a’ 存储(ASCII码) “%c” “%d” a 97 输出格式符 显示 【例】大小写字母的转换 main() { char c1,c2; c1 =
您可能关注的文档
最近下载
- PRS-7000_220KV型数字变电站自动化系统技术使用说明书.pdf VIP
- 国开电大《个人与团队管理》(试卷号22269)机试试题.pdf
- 2024广东统招专升本《大学语文》全书知识点汇总课件.pdf
- 虫害控制程序(SSOP).doc VIP
- 2025届【九省联考】全国高三10月联考数学答案.docx
- 滥竽充数-完整版PPT课件.ppt
- 2024华医网继续教育护理多学科协作,为老年外科患者保驾护航题库答案.docx VIP
- 冀教版小学数学五年级上册7.3《土地资源问题》说课PPT(共21张PPT).pptx VIP
- 嵌入式技术入门与实战(基于STM32)全套教学课件.pptx
- 2024年煤炭销售绩效考核办法.pdf VIP
文档评论(0)