2.3.2 赋值运算符与赋值表达式
1.基本的赋值运算符"="
赋值运算符"="在前面的程序中已经基本介绍过它的使用方法了。它的一般形式是:
变量=表达式;
它首先计算表达式的值,再把值赋给变量。例如:
a = b = 8;把8赋给b,再把变量b的值赋给a,a的值也为8。
a = 3+(b = 7);把7赋给b,然后计算3+b的值,最后把结果10赋给a。
a =(b = 5)/(c = 3);把5和3分别赋给b和c后,计算b/c,把结果1赋给a,这里假定a、b、c为int型。
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型转换为左边的类型。具体规定如下。
(1)实型赋给整型,舍去小数部分。如有语句"int a = 3.14;"则a的值为3。
(2)整型赋给实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。如有语句"float a = 15;"则a的值为15.000000。
(3)字符型数据赋给整型数据,由于字符型为1个字节,而整型为4个字节,故将字符的ASCII码值放到整型量的最低的8位中,高位的3个字节为0。
(4)整型赋给字符型,只把低8位赋予字符变量。由于char只有一个字节,而int为4个字节,赋值时只把int型变量的值的最低8位赋给字符变量,高出的24位舍去。
2.复合的赋值运算符
复合赋值符主要有+ =、- =、*=、/=、%=。例如:
第二条相当于"a = a + 5"其他的复合赋值符也一样。要注意的是:
它等价于"x = x*(y + 8)";而不是"x = x*y + 8;",其他的复合赋值符也一样。