C语言chapter03.pptVIP

  • 1
  • 0
  • 约1.79千字
  • 约 15页
  • 2017-12-26 发布于河北
  • 举报
C语言chapter03

第3章 运算符与表达式 3.1 C运算符简介 (1)算术运算符: +、-、*、/、%、++、-- (2)关系运算符: 、、= =、=、=、!= (3)逻辑运算符: !、、|| (4)赋值运算符: =、复合的赋值运算符 (5)逗号运算符:, (6)位运算符:、、~、|、^、 (7)条件运算符:?: C运算符简介(续) (8)指针运算符:*、 (9)强制类型转换运算符:(类型) (10)下标运算符:[ ] (11)求字节数运算符:sizeof (12)分量运算符:? 、- (13)其他运算符:如函数调用运算符( ) 自增和自减运算符++、-- 作用:将操作数自己增加1或者减少1。 前置(前缀): 如:++i 、--i 后置(后缀): 如:i++、i-- main( ) { int i=3,j=4; i++;++i; j--;--j; printf(“%d %d\n”,i,j); } 比较前置运算和后置运算 main( ) { int i=3,j,k; j=i++; k=++j; printf(%d%d%d\n,i,j,k); } 自增、自减运算小结: 自增运算符和自减运算符是单目运算符,且只能用于单个变量。 当前置运算或者后置运算与其他运算结合在一个表达式中时: 前置运算:先增值后引用 后置运算:先引用后增值 “++”和“--”的运算结合方向是从右到左。 复合的赋值运算符 复合赋值运算符:+=、-=、*=、/=、%=等。 复合赋值运算表达式的一般形式: 变量op=表达式 说明:“op”为其它运算符,如+、-、*、/、%等。 举例: a+=b …… a*=b 等同:a=a+b …… a=a*b 表达式“变量op=表达式;”的执行过程 步骤: (1)求出“表达式”的值; (2)把求出的表达式的值与“变量”做op运算; (3)把第二步求出的值再赋给“变量”。 例如:设x=5,y=2,求x%=y+3的值。 (1)y+3 5 即:x%=5 (2)x%5 0,(x=5) (3)x 0 3.4 位运算 位运算:是指对操作数的二进制位进行的运算,包括位逻辑运算、移位运算。 位逻辑运算:可设置或屏蔽内存中某个字节的某一位。 移位运算:可对存储单元中的二进制位进行左移、右移操作。 位运算符(6种) 长度运算符 运算符:sizeof() 功能:取数据类型或变量的长度。 格式: sizeof(数据类型说明符或变量名) 举例: 已知:int a; float b; double c; 则: sizeof(a) =4 sizeof(b) =4 sizeof(c) =8 混合类型表达式的类型确定规则 两个不同类型的运算量参加运算,C编译系统自动把长度较短的类型转换为长度较长的类型,以保证不丢失精度。 混合类型计算举例: 1/3*3 与 1*3/3 2.50+12 32767+2L 各数据类型混合运算的排列顺序: 强制类型转换 目的:弥补自动类型转换的不足。 一般形式: (类型关键字)(变量名或表达式) 举例: float a=56.789; int b; b=(int)a%3; (double)b (float)(20%3+4) 使用强制类型转换注意: 在进行强制类型转换时,类型关键字必须用括号括住。 在对一个表达式进行强制类型转换时,整个表达式也要用括号括住。 如:(float)(a+b) ? (float)a+b 在对变量和表达式进行了强制类型转换后,并不改变原变量或表达式的类型。 如: int z; float x; double y; z=(int)(x+y); 执行后x、y的类型不变。 * 结果输出:5 2 请先阅读下面的程序: 结果输出显示: 4 4 4 过程: i=3; 3 j=i; 3 i=i+1; 4 j=j+1; 4 k=j; 4 i,j,k: 4 4 4 说明: (1)位运算符中,除了取反“~”运算以外,其余均为双目运算符。 (2)运算量只能是整型或字符型数据,其在机器内存中以二进制形式存储。 *

文档评论(0)

1亿VIP精品文档

相关文档