c2 运算符及表达式.pptVIP

  • 3
  • 0
  • 约1.23万字
  • 约 44页
  • 2018-06-30 发布于天津
  • 举报
c2 运算符及表达式.ppt

各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法:按权相加 字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1 数值的表示方法——原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1 2.1 数据类型 数据类型总表 算术表达式和运算符的优先级与结合性 用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子称为C算术表达式。算术表达式的运算对象包括常量、变量、函数等。 例:a*b/c-1.5+’a’ C语言规定先在表达式求值时,先按运算符的优先级别高低次序进行,先乘除后加减。 如果一个运算对象两侧的运算符级别相同时,如:a-b+c,则按照自左向右的结合方向运算(左结合性)。 如果一个运算符两侧的数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后运算。可以利用强制类型转换运算符将一个表达式转换成所需类型。 关系运算注意: 条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句 几种运算符的优先级 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 赋值表达式的值与变量值相等,且可嵌套 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型 例 3=x-2*y; a+b=3; 例 float f; int i; i=10; f=i; 则 f=10.0 例 int i; i=2.56; //结果i=2; 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) //表达式值为5,a,b,c值为5 // b=5;a=5 //表达式值11,c=6,a=11 //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2 逗号运算符和表达式 形式:表达式1,表达式2,……表达式n 结合性:从左向右 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中 例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); //a=15,表达式值60 //a=15,表达式值20 //赋值表达式,表达式值18,x=18 //逗号表达式,表达式值18,x=3 //1,2,3 //3,2,3 逗号运算符和表达式 形式:表达式1,表达式2,……表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中 例: /*ch2_6.c*/ #include stdio.h main() { int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%d\n,x); } 运行结果:x=3 关系运算符和表达式 关系运算符 种类: = == = != 结合方向:自左向右 优先级别: = = == != 优先级6(高) 优先级7(低) 例 ca+b //c(a+b) ab!=c //(ab)!=c a==bc //a==(bc) a=bc //a=(bc) 关系表达式的值:是逻辑值“真”或“假”,用1和0表示 例 int a=3,b=2,c=1,d,f; ab (ab)==c b+ca d=ab f=abc //表达式值1 //表达式值1 //表达式值0 //d=1 //f=0 例 若a=0; b=0.5; x=0.3; 则 a=x=b的值为 0 例 5278在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2 例 ‘a’0 结果为 ‘

文档评论(0)

1亿VIP精品文档

相关文档