赋值运算符和赋值表达式
1)赋值运算符
在C++语言中,“=”是一个赋值运算符,它的作用是将一个数值或一个表达式的值赋给一个变量。例如:
num=10; ∥将10赋给变量num
num=num+10; ∥先将变量num的值加10,然后赋给变量num
赋值运算符具有计算和赋值双重功能,即先计算出表达式的值,再将该值赋给指定的变量。
2)复合赋值运算符
在C++中,所有的双目算术运算符和位运算符均可与赋值运算符组合成一个单一的运算符,这种运算符称为复合赋值运算符。它们是:例如:
+=(加等) -=(减等) *=(乘等) /=(除等) %=(求余等)
《=(左移等) 》=(右移等) &=(按位与等)
=(按位或等) ∧=(按位异或等)
a+=1 ∥相当于a=a+1
x*=y+1 ∥因为*=运算符的优先级别比+运算符级别低,所以相当于x=x*(y+1)
x%=2 ∥相当于x=x%2
使用复合赋值运算符不但可以简化表达式的书写形式,而且还可以提高表达式的运算速度。
注:赋值运算符和复合赋值运算符的结合性均为自右向左。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架3)赋值表达式
用一个赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。赋值表达式的一般格式为:
<变量名称><赋值运算符><表达式>
赋值表达式的求解过程为:先求出赋值运算符右侧的表达式的值,然后将该值赋给赋值运算符左侧的变量。赋值表达式的值就是被赋值的变量的值。例如:
a=b*2
若b=3,则a=6;整个赋值表达式的值也是6。
说明:
(1)一般形式的赋值表达式中的表达式,也可以是一个赋值表达式。例如:
a=(b=8%3)
则b的值为2,赋值表达式b=8%3的值为2,a的值也为2;整个赋值表达式的值也为2。
(2)赋值运算符的优先级低于算术运算符,其结合性为右结合性,即从右到左运算。例如:
a=b=c=1 ∥该表达式等价于a=(b=(c=1)),得a、b、c的值均为1∥整个赋值表达式的值为1
a=(b=4)+(c=6)∥b的值为4,c的值为6,a的值为10,整个表达式的值为10
a=(b=10)/(c=2)∥b的值为10,c的值为2,a的值为5,整个表达式的值为5
(3)赋值表达式也可以包含复合赋值运算符。例如:
a+=a-=a*a
若a的初值为2,该赋值表达式的运算过程为:
①先进行a-=a*a的运算,它相当于a=a-a*a,即a=2-2*2=2-4=-2,得a的值为-2,表达式a-=a*a的值也为-2。
②再进行a+=-2的运算,它相当于a=a+(-2),即a=-2+(-2),得a的值为-4。整个表达式的值为-4。
分析下列程序的运算结果。程序文件名为example2_5.cpp。
例2.5的运行结果如图2.7所示。
4)赋值运算时数据类型的转换
在进行赋值运算时,若赋值运算符右边表达式的值的数据类型与其左边变量的数据类型不一致但属于类型兼容时(可进行类型转换),则系统会自动转换数据类型。类型转换的一般原则为:将赋值运算符右边表达式的值转换为赋值运算符左边变量所属的类型,若右边表达式的值转换后超出左边变量的取值范围,则赋值结果错误。例如:
图2.7 的运行结果
inti,j,k;
floatf,g,h;
i=1;j=2;f=1.2;g=3.4;
h=i*j; ∥i*j的值为2,转换成实数2.0赋给h,h的值为2.0
k=f*g; ∥f*g的值为4.08,转换成整数4赋给k,k的值为4
好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个