网站大量收购独家精品文档,联系QQ:2885784924

第3章C语言数据存储与运算重点.ppt

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
转换规则 横向向左的箭头表示必 定的转换 纵向的箭头表示当运算 对象为不同类型时转换 的方向。 类型转换例子 3.2 强制类型转换运算符 强制类型转换的一般形式为: (类型名)(表达式) ?将变量或表达式转换成所需类型的中间变量,原来变量或表达式的类型不发生变化。 例如: (double) a \*将a转换成double类型*\ (int)(a+b) \*将a+b的值转换成整型*\ (int)a+b \*将a的值转换成整型再与b相加*\ (float)(5%3) \*将5%3的值转换成float型*\ 例18 强制类型转换 3.8.3自增、自减运算符 作用是使变量的值增1或减1,如: ? ++i,--i (在使用i之前,先使i的值加(减)1) ? i++,i-- (在使用i之后,使i的值加(减)1) ?如果i的原值等于3,则执行下面的赋值语句:  ① j =++i;(i的值先变成4, 再赋给j,j的值为4)  ② j=i++;(先将 i的值3赋给j,j的值为3,然后i变为4) 如何验证正误 #include stdio.h int main() { int i =3; int j =3; printf(“++i = %d\n”, ++i); printf(“j++ = %d\n”, j++); return 0; } 例19 自增、自减运算符 #include stdio.h int main() { int i =5,j=10; printf(“i++:%d,j--:%d\n”, ++i,j--); printf(“i++:%d,--j:%d\n”, ++i,--j); return 0; } 注意: (1)自增运算符(++)和自减运算符(--),只能用于 变量,而不能用于常量或表达式,如5++或(a+b)++ 都是不合法的。 (2) ++和--的优先级是第2级,结合方向是“自右向左” 如果有-i++。 “-”和“++”运算符同优先级,而结合方向为“自右至左”(右结合性),即它相当于 -(i++)。 (3)注意:ANSI C并没有规定表达式中的子表达式的求 值顺序。允许各编译系统自己安排,这样最后获得 的结果就可能不同。因此务必要小心避免歧义性。 例如: (i)int i = 3 ; 表达式 (i++) + (i++) + (i++) 的值是? 可能性1:结果为3+4+5,即12 可能性2:结果为3+3+3,即 9 (ii)表达式 i+++j 如何理解? 理解1:i + (++j) 理解2:(i++) + j 原则:C编译系统在处理时尽可能多地(自左而右) 将若干个字符组成一个运算符。 (iii)printf(“%d, %d”,i,++i) 中参数求值顺序? 理解1:从左至右求值,输出“3,4” 理解2:从右至左求值,输出“4,4” 原则:在多数系统中对函数参数的求值顺序是自右向 左。 课堂练习 执行下列语句的结果为__11,11____。 i=012; printf(“%d,”,++i); printf(“%d”, i++); 执行下列语句的结果为___6, 6___。 int sum=1,pad=5; sum=++pad; printf(“%d, %d\n”,pad, sum); 课堂练习 以下程序输出的结果是___9,10___。 int i = 010, j = 10; printf(“%d,%d\n”, ++i, j--); 以下程序输出的结果是___i=3, j=-2 ___。 int i, j; i = 2; j = -i++; printf(“i=%d, j=%d\n”,i, j); 3.9 赋值运算符和赋值表达式 1. 赋值运算符: “=” 优先级:14级 ?作用:将一个常量、变量或表达式赋给一个变量 2. 赋值表达式:由赋值运算符和运算对象连接起来 的,符合C语言语法规范的式子。 例如:a=3, 把常量3赋给变量a。 b=a, 把变量a的值赋给变量b。 3. 赋值运算符按照“自右而左”的结合顺序 ?例如:“a=(b=5)”和“a=b=5”等价 注意:赋值表达式的值就是被赋值的变量的值; 赋值表达式举例: a=b=c=5 赋值表达式值为5, a、 b、 c值均为5 a=5+(c=6) 表达式值为11,a值为11,c值为6 a=(b=10)/(c=2) 表达式值为5,a等于5,b等于10,c等于2 4. 类型转换:按存储单元中的存储形式传送 如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。 (1)若“=”左边的类型低于右边的类型,一般为截取方式。

文档评论(0)

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

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

1亿VIP精品文档

相关文档