C++备课讲义第2章课件.ppt
文本预览下载声明
算术运算符和算术表达式 一、算术运算符和算术表达式 + - * / % 用算术运算符连接起来的式子是算术表达式 两个整数相除结果为整数 1/2=0 5/2=2 整数才可求余,余数的符号与左边数的符号相同。 3%2=1 -3%2=-1 3%-2=1 -3%-2=-1 8%4=0 二、优先级与结合性 () * / % + — 三、强制转换类型 (类型名)(表达式) (double) a (int) (x+y) (int) 6.2%4=2 在强制类型运算后原变量不变,但得到一个所需类型的中间变量。 如:int x; float y=5.8; x=(int)y; x=5 y=5.8 y的值没有改变,仍是单精度浮点型 四、自增、自减运算符 (难点) ++ -- i 6 i 3 7 int i, j; i=3; j = ++i; i=4 j=4 ++在前, 先运算,后赋值 int i, j; i=3; j = i++; i=4 j=3 ++在后, 先赋值,后运算 j 4 4 i 3 j 3 4 i=6; i++; i=i+1 i=7 ++i; i=i+1 i=7 i=6; i--; i=i-1 i=5 --i ; i=i-1 i=5 i 6 7 1)自增、自减运算符只能用于变量,不可用于常量和表达式 因为表达式在内存内没有具体空间,常量所占的空间不能重新赋值 3++ (x+y)++ (-i)++ 若i=3, j=2 (i++) +j 等于 5 i=4, j=2 2)结合方式自右至左,优先级最高,向右取最大 -i++ -(i++) i+++j (i++) +j 赋值运算符和赋值表达式 bmw=2002 =左边必须是变量名。 若“ = ” 两边变量类型不同,在赋值时要进行类型转换。 转换原则:根据左边变量的类型转换。 少字节?多字节 1)若多字节变量为unsigned ,则转换后多余字节补零。 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 unsigned short int a=-1; unsigned long b; b=a; a b 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 有符号型,符号扩展 short int a=-1; long b; b=a; 2)若多字节变量为有符号型,则转换后扩展少字节的最高位。 转换后,数据的符号不变。 a b 多字节?少字节 低位照搬 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 int a=-1; short int b; b=a; b=-1 int a=65535; short int b; b=a; b=-1 b a 1 1 1 1 1 1 1 1 赋值表达式 a=b=5 ; b=5 a=5 =的结合性为自右至左 复合的赋值运算符 a+=3 a=a+3 x*=y+3 x=x*(y+3) x/=x-4 x=x/(x-4) x+=y x=x+y i+=j-- i=i+(j--) a=12; a+=a-=a*a; 12 a a=a-(a * a) =12-(12*12)=-132 a=a+(-132)=-132-132=-264 -132 -264 关系运算符和关系表达式 关系运算符(比较运算) = = = = != = = 与 = a=5; 赋值运算 a= =5;判断是否相等 = = 的优先级大于= = != 3. 算术运算符的优先级大于关系运算符的优先级 关系表达式:用关系运算符将表达式连接起来称为关系表达式。其值非真即假。在C++语言中,用非0代表真,用0表示假。关系表达式的结果只有两个,真为1,假为0。 a=2 b=3 c=4 a2 ab+c a= =2
显示全部