4.1顺序结构 4.1.2赋值运算符和赋值表达式 ●赋值语句:赋值表达式在其后面加分号就构成了赋值语句。 例如:x=8; 多个变量连续赋值 注意: > 赋值语句“=”左边必须是变量名; b+2=5;是错误的。 >」 赋值语句中的=”表示赋值,不是代数中相等的意 思。关系运算符“=”表示,二者切勿混清! 赋值表达式的嵌套 例如:a=(b=2)+(c=3) 结果:b为2,c 恩 (a=(b=2)+(c=3) 为3,a为b+c即5
6/72 4.1.2 赋值运算符和赋值表达式 4.1 顺序结构 例如: x = 8; ⚫ 赋值语句:赋值表达式在其后面加分号就构成了赋值语句。 ⚫ 多个变量连续赋值 例如: a = b = c = 10; a = (b = (c = 10)); 结果:a、b、c 的值都为10 ⚫ 赋值表达式的嵌套 例如: a = (b = 2) + (c = 3) ( a = (b = 2) + (c = 3)) 结果:b为2,c 为3,a为b+c即5 注意: ➢ 赋值语句“=”左边必须是变量名; b + 2 = 5; 是错误的。 ➢ 赋值语句中的“=”表示赋值,不是代数中相等的意 思。关系运算符“==”表示,二者切勿混淆!
4.12赋值运算符和赋值表达式4.1顺序结构 2.复合赋值运算符 形式 <二元(二目)运算符><赋值符> +=,-=,*=,/=,%=,<<=,>>=,&=,∧=,= s例如: a+=3 /等价于 a=a+3 X*=y+8 //等价于 X=X*(y+8) X%=3 /等价于 X=X%3 s理解x*=y+8 复合的赋值运算符优点: s运算优先级 ·简化程序,使程序精炼 s结合性 。 提高编译效率,能产生质 量较高的目标代码。 772
7/72 4.1.2 赋值运算符和赋值表达式 4.1 顺序结构 2. 复合赋值运算符
4.1.2赋值运算特和赋值表达式4.1顺序结构 2.复合赋值运算符 【例4.2】复合赋值运算示例。 #include<stdio.h> int main() inta=3,b=4,c=5,d=6; a+=b*c; b-=c/b; printf("%d,%d,%d,%dln",a,b,c*=2*(a-c),d%=a); printf("x=%dIn",a+b+c+d); return 0; 程序运行结果: 23,3,180,6 X=212 恩 8172
8/72 4.1.2 赋值运算符和赋值表达式 4.1 顺序结构 2. 复合赋值运算符 【例4.2】 复合赋值运算示例。 #include<stdio.h> int main() { int a = 3, b = 4, c=5 ,d=6; a+=b*c; b-=c/b; printf("%d,%d,%d,%d\n",a,b,c*=2*(a-c),d%=a); printf("x=%d\n",a+b+c+d); return 0; } 程序运行结果: 23,3,180,6 x=212
4.12赋值运算符和赋值表达式4.1顺序结构 2.注意事项 (1)赋值时的类型转换 赋值运算特两边的数据类型不同,条统将自动进行类型转换 ①实型赋予整型,舍去小数 ②整型赋予实型,数值不变,但将以浮点形式存放 ③字符型赋予整型,将字特的ASCII码值放到整型量 的低八位中,高八位为0。整型赋予字符型,只把低八 位赋予字符量。 (2)赋值运算符优先级与结合性 恩 972
9/72 4.1.2 赋值运算符和赋值表达式 4.1 顺序结构 2. 注意事项 (1) 赋值时的类型转换 赋值运算符两边的数据类型不同,系统将自动进行类型转换 – ①实型赋予整型,舍去小数 – ②整型赋予实型,数值不变,但将以浮点形式存放 – ③字符型赋予整型,将字符的ASCII码值放到整型量 的低八位中,高八位为0。整型赋予字符型,只把低八 位赋予字符量。 (2)赋值运算符优先级与结合性