第2章 C程序设计的初步知识 2.6 赋值表达式
讨论本章
- 知识点:
- 赋值运算符和赋值表达式
- 复合赋值表达式
- 赋值运算中的类型转换
在c语言中,赋值号”=“是一个运算符,称为赋值运算符。由赋值运算符组成的表达式称为赋值表达式,其形式如下:
变量名=表达式
赋值号的左边必须是一个代表某一存储单元的变量名,对于初学者来说,只要记住赋值号左边必须是变量名即可。赋值号的右边必须是C语言中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量,确切地说,是把数据存入以该变量为标识的存储单元中去。
在赋值运算符之前加上其他运算符可以构成复合赋值运算符。c语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:+=、-=、*=、/=、%=(注意:
两个符号之间不可以有空格)。复合赋值运算符的优先级与赋值运算符的优先级相同。表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3),因为运算符“+”的优先级高于复合赋值运算“* =”。其他以此类推。
在赋值运算中,只有在赋值号右侧表达式的类型与左侧变量类型完全一致时,赋值操作才能进行。如果赋值运算符两侧的数据类型不一致,在赋值前,系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换,也可以用强制类型转换的方式人为地进行转换后将值赋给赋值号左边的变量。这种转换仅限于数值数据之问,通常称为”赋值兼容”。对于另外一些数据,例如后面将要讨论的地址值就不能赋给一般的变量,称为”赋值不兼容”。
在这里,特别需要指出的是在进行混合运算时整型数据类型之间的转换问题。