数据类型运算符与表达式的剖析.pptVIP

  • 1
  • 0
  • 约7.15千字
  • 约 51页
  • 2019-11-06 发布于广东
  • 举报
强制类型转换 强制类型转换是通过类型转换运算来实现的。 其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。 例如: (float) a 把a转换为实型 (int)(x+y) 把x+y的结果转换为整型 在使用强制转换时应注意以下问题: 类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。 强制类型转换举例 【例3.13】 main() { float f=5.75; printf((int)f=%d,f=%f\n,(int)f,f); } 强制类型转换举例 main( ) { float a; int c ,b; a=2.5,b=5; c=(int)a+b; printf(%d, %d ,a,c); } 问题八:运算符与表达式 C语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。 C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。 8.1 运算符简介 运算符的几个属性: 操作数: 参加操作的对象 “目”: 操作数的个数 单目、双目、三目 结合性: 从左向右:先左后右 从右向左:先右后左 优先级: C语言运算符分类 8. 2 算术运算符和算术表达式 基本的算术运算符(+、-、*、/、%) *、/、%:第三优先级 +、-:第四优先级 注意: 两个整数作除法,结果“向零取整”:5/3=1,56/10=5,78/10=7; 参加除求余以外的算术运算的操作数有一个是实数,则结果为“double”型的。 参加“求余%”运算的运算对象必须为“整数”:5%3=2,15%3=0,7%9=7; 算术表达式和运算符的优先级与结合性 算术表达式:算术运算符+操作数 优先级: a-b*c 等价于 a-(b*c) a-b+c 等价于 (a-b)+c 结合性 x-y+z 等价(x-y)+z 左结合 x=y=z 等价 x=(y=z)右结合 如果一个算术运算符的两侧的数据类型不相同,自动进行类型转换。 4.自增、自减运算符(++、--) 自增1,自减1运算符: 自增1运算符记为“++”,其功能是使变量值自增1。 自减1运算符记为“--”,其功能是使变量值自减1。 自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i : i自增1后再参与其它运算。 --i : i自减1后再参与其它运算。 i++ : i参与运算后,i的值再自增1。 i-- : i参与运算后,i的值再自减1。 自加、自减运算符应用举例 main() { int i=8; printf(“%d\n,++i); printf(%d\n,--i); printf(%d\n,i++); printf(%d\n,i--); } 自加、自减运算符应用举例 ??? main() ??? { char a=a,b; ??? print(%c,,++a); ??? printf(%c\n,b=a++); ??? } ??? 程序运行后的输出结果是 ??? A)b,b B)b,c C)a,b D)a,c 自加、自减运算符应用举例 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是  A) a++;  B) b++ C) c++;  D) d++; 自加、自减运算符应用举例 设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是 printf(”%d,%d\n”,x--,--y); A) 10,3 B) 9,3 C) 9,2 D)10,2 自加、自减运算符应用举例 以下选项中,与k=n++完全等价的表达式是 A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 3.9赋值运算和赋值表达式 1.? 赋值运算符 简单赋值运算符: “= ” 赋值表达式:由“=”连接的式子 其一般形式为: 变量=表达式 例如: x=a+b w=sin(a)+sin(b) 赋值表达式的功能:计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。 2. 类型转

文档评论(0)

1亿VIP精品文档

相关文档