2.3 C++赋值运算符与表达式

作者

闫小林

赋值运算符

小林在前面小结中有说过赋值符号=就是赋值运算符,它的主要作用是将一个值赋给一个变量。

比如,把常量5的值赋给变量x。

x=5;

也可以把一个表达式的值赋给变量

int x;
x=3+5*2;

赋值过程中的类型转换

在赋值的过程中会自动的进行类型转换,将浮点型数据赋值给整型变量时,会舍弃小数部分。

将整型数据赋值给浮点型时,数值不会发生变化,但是会以指数形式存储到变量中。

将double型数据给float型数据赋值时,要注意数值范围不能溢出。

字符型数据赋值给整型变量时,是将字符在ASCII码表中的值赋给了整型变量。

将int,short,long型数据赋给char型变量时,是将其低8位原封不动的送到char型变量。

将signed型数据赋给长度一样的unsigned型变量时,将存储单元内容原样赋过去。

复合赋值运算符

x+=4; //等价于x=x+4
x*=y+1; //等价于x=x*(y+1)

C++使用复合运算符可以简化程序,使之更加精炼,提高编译效率。

赋值表达式

将一个变量和一个表达式连接起来的式子可以称为赋值表达式。

一般形式

<变量><赋值运算符><表达式>

x=y=z=2; //赋值表达式的值为2,xyz值都为2
x=1+(y=2); //表达式值为3,y的值为2,=右边值为3

案例:将有符号数据赋值给无符号变量,并输出。

#include<iostream>
using namespace std;
int main()       //主函数
{
  unsigned short num_1; //定义无符号变量
  short int num_2=-10; //定义有符号的短整型变量且赋值
  num_1=num_2; //赋值
  cout<<num_1<<' '<<num_2<<endl; //输出
  return 0;
}

执行本程序之后,则会输出65526 -10。

会先获取-10的补码,16个二进制位,将它传给num_1,num_1是无符号型变量,补码的16个二进制位的十进制是65526。

正文完