首页 理论教育 零基础C++从入门到精通:赋值操作符

零基础C++从入门到精通:赋值操作符

时间:2023-08-20 理论教育 版权反馈
【摘要】:表3.3.7C++赋值操作符表3.3.7列出的是赋值操作符,其中除了第一个基本的赋值操作符以外,其他的都是与各种操作符复合而成的复合赋值操作符。下面我们来看一个示例:动手写3.3.9动手写3.3.9展示了复合赋值操作符的运算。运行结果如图3.3.9所示:图3.3.9复合赋值操作符示例运行结果

零基础C++从入门到精通:赋值操作符

在介绍各种赋值操作符之前,我们先来介绍一下左值(lvalue)和右值(rvalue)的概念。左值能够出现在赋值语句的两边,而右值只能出现在赋值语句的右边。比如“a= b+c;”这个语句中的“b+c”就是一个右值,不能出现在左边写成“b+c=a;”。这是因为左值在内存中需要有一个确定的位置,赋值操作需要把右值计算出的结果存到这个位置。这样的话,接下来我们在类似“d=a+c”这样的语句中用到a的时候,也是从这样一个确定的位置中读取的。这就好像把“F=ma”这样的公式写成“ma=F”,会令人弄不清楚要求的到底是ma中的哪一个。

此外,因为赋值操作符的左边是左值,而左值也可以出现在赋值操作符的右边,所以“a=b=c+d”这种语句是合法的。这种语句可以看成是“b=c+d”这样一个赋值表达式的结果,也就是b赋值给a的嵌套赋值表达式,因此a和b同时得到了c+d的值。

提示

我们需要区分以下几种概念:“int a=b;”是一个带初始化变量定义语句;“a=b;”是一个赋值语句;“c=a=b”中的“a=b”是一个赋值表达式,而“c=a=b”也是一个赋值表达式,其中“a=b”的返回值将会继续赋值给c。

表3.3.7 C++赋值操作符

(www.xing528.com)

表3.3.7列出的是赋值操作符,其中除了第一个基本的赋值操作符以外,其他的都是与各种操作符复合而成的复合赋值操作符。以“a+=b”作为例子,它其实是“a=a+b”的缩写,以此类推。而“a=a+1”就可以直接用“a++”或者“++a”来代替。下面我们来看一个示例:

动手写3.3.9

动手写3.3.9展示了复合赋值操作符的运算。运行结果如图3.3.9所示:

图3.3.9 复合赋值操作符示例运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈