首页 理论教育C语言程序设计基础:赋值运算符

C语言程序设计基础:赋值运算符

【摘要】:在C语言中,“=”称为赋值运算符,赋值运算符的左边一定是变量,不能是常量或表达式。赋值表达式可以作为一个运算成分出现在另外的表达式中,从而构成比较复杂的表达式或语句。在赋值表达式计算中,若赋值运算符两边的数据类型不相同时,系统将自动进行类型转换。赋值运算符使用示例。

在C语言中,“=”称为赋值运算符,赋值运算符的左边一定是变量,不能是常量或表达式。由“=”连接的式子称为赋值表达式。其一般形式为:

变量=表达式

赋值表达式的功能是:计算出赋值号右边表达式的值,将值赋给左边的变量。

赋值表达式可以作为一个运算成分出现在另外的表达式中,从而构成比较复杂的表达式或语句。例如,x=(a=5)+(b=3)是一个合法的C表达式。

在C语言中,将赋值表达式末尾加上分号“;”就构成赋值语句,其一般形式为:

<赋值表达式>;

使用赋值运算符时需要注意以下两点:

·赋值运算符具有右结合性。因此a=b=c=5可理解为a=(b=(c=5))。

·赋值表达式可以出现在任何允许表达式出现的地方,而赋值语句则不能。

例如,c=(a=2)+b+100;是合法的C语句;而c=(a=2;)+b+100;则是非法的。(www.chuimin.cn)

在赋值表达式计算中,若赋值运算符两边的数据类型不相同时,系统将自动进行类型转换。即将赋值号右边的数据类型转换成赋值号左边的数据类型,再执行赋值操作。常出现的类型转换如下:

①实型表达式值赋值给整型变量,舍去小数部分。特别要注意的是,C语言使用截取法取整,即将小数部分直接去掉。例如,有语句序列:int a,b;a=3.45;b=3.9878;,则变量a和b得到的值都是3。

②整型表达式值赋值给实型变量,数值不变,但以浮点数形式存放,即增加小数部分,小数部分的值为0。

字符型表达式值赋值给整型变量,将字符的ASCII码值放到整型量的低八位中,高八位为0,例如,有语句序列:int i;i='a';,则变量i的值为97。

④整型表达式值赋值给字符变量,只能将整型数据低八位值赋给字符型变量。例如,有语句序列:char c;c=321;,注意到十进制数321的十六进制值为0x0141,所以变量c的值是0x41(十进制值65),即字符'A'。

⑤单精度实型表达式值赋值给双精度实型变量,数据没有任何损失;但将双精度实型表达式值赋值给单精度实型变量时,有可能会丢失数据(整数部分)或者损失精度(小数部分)。

【例2.12】 赋值运算符使用示例。

程序运行结果如下: