第3节 表达式.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
① int i=-1;  long int j;  j=i;  i 的二进制形式: 0000000000000001  j 的二进制形式:00000000000000000000000000000001  ② int i=?1; ? long int j; ? j=i; i的二进制形式:1111111111111111 j的二进制形式:11111111111111111111111111111111 ③ long int i =?1; ?int j; ?j=i; i的二进制形式:11111111111111111111111111111111 j的二进制形式:1111111111111111 (5) 将无符号整型数据赋给长整型变量时,不存在符号位扩展的问题,只需将高位补0即可。将无符号整型数据赋给一个占字节数相同的整型变量时,将无符号整型数据原样送整型变量中,并将最高位当作符号位,如果数据超出相应的整型范围,将产生数据错误。如果将整型数据赋给占字节数相同的无符号整型变量时,也是原样照赋,最高位作数值处理。 例如: ① unsigned int i=65 535; ?int j; ?j=i;/* j的值为?1*/ ② int i =?1; ?unsigned int j; ?? j=i;/*j 的值为65 535*/ 3.3.3 复合赋值运算 在基本赋值运算符“=”之前加上任一双目算术运算符及位运算符可构成复合赋值运算符, 又称带运算的赋值运算符。 算术复合赋值运算符: +=、 -=、 *=、 /=、 %= 位复合赋值运算符: =、 |=、 ^=、 =、 = 一般形式: 变量☆=表达式 等价于: 变量=变量☆表达式 ☆代表任一双目算术运算符或位运算符。  复合赋值运算先进行所带运算, 再进行赋值运算。 复合赋值运算的优先级同赋值运算。 例如: ① int a=3; a+=2等价于a=a+2,结果为5。 ② float x=1.2,y=2.1; y*=x+3.4等价于y=y*(x+3.4),结果为9.66。 ③ int a=3,b=2; b/=a+=1等价于b=b/(a=a+1),结果为0。 例3-3 赋值运算。 /*程序3-3,赋值运算*/ #include stdio.h main(?) {int i,j; float x,y; i=j=1; x=y=1.1; printf(i=%d,j=%d\n,i,j); x=i+j; y+=1; printf(x=%4.2f,y=%4.2f\n,x,y); i=i+++j; x=2*x+y; printf(i=%d,x=%4.2f \n,i,x); } 运行结果: i=1,j=1 x=2.00,y=2.10 i=3,x=6.10 printf(″x=%4.2f, y=%4.2f\n″, x, y);  i=i+++j;  x=2*x+y;  printf(″i=%d, x=%4.2f \n″, i, x);  } 运行结果:  i=1, j=1 x=2.00, y=2.10 i=2, x=6.10 3.4 逻辑表达式 3.4.1 关系表达式 关系表达式是逻辑表达式中的一种特殊情况, 关系表达式由关系运算符和操作数组成, 关系运算用于完成数的比较运算。关系运算有、 =、 ==、 !=、 、 =, 、 =、 、 =的优先级相同, ==、 !=的优先级相同, 前者的优先级高于后者。关系运算符的优先级低于算术运算, 高于逻辑运算、||, 也高于赋值运算。 3.4.2 逻辑表达式 逻辑表达式由逻辑运算符和操作数组成,逻辑表达式用于程序设计中的条件描述。 逻辑表达式中操作数可以是逻辑量和关系表达式。 C语言有!、、‖三种逻辑运算,运算规则在上章已作介绍。! 运算的优先级高于算术运算,运算的优先级高于‖运算,、‖运算的优先级低于关系运算,高于赋值运算。 在计算逻辑表达式时务请注意: 和‖是一种短路运算。所谓短路运算,是指在计算的过程中,只要表达式的值能确定,便不再计算下去。 逻辑与运算时,计算到某个操作数为假,可以确定整个表达式的值为假时,剩余的表达式部分便不再计算。 逻辑或运算时,计算到某个操作数为真,可以确定整个表达式的值为真时,剩余的表达式部分便不再计算。 例

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档