C语言-数据类型运算符和表达式.ppt

  1. 1、本文档共144页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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=3 i=4 i=5 i=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=-3 i=4 k=13 i=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 =

文档评论(0)

3471161553 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档