代码如下:
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 3;
b += (++a)+(++a);
cout << b << endl;
}
输出结果是11。
如果将“b += (++a)+(++a)”改为“b = b+ (++a)+(++a)”则输出结果是10
这是什么原因
在C/C++中,操作符称为自反运算符(类似的还有+=、*=、/=、&=、|=等等),由前后两个符号无间隔组合而成;其核心意义由前一个符号确定,完成左边的变量与右边的变量的运算关系,后面的=号是把运算结果赋给左边的目标变量的意思。
扩展资料:
C语言便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C语言作为一个大多编程人员入门的语言,我们常常说的C语言,从入门到入土。C语言是一种很严谨的面相机器的语言,因为机器是最“笨”的也是最“聪明”的,只有这样我们才能通过它们设计出任何一个我们想要的“虚拟世界”。
那么我们来看看“=”符号的应用。
“=”和“==”也许在大多人看来,“=”不就是等于号,为什么会有“==”这种两个等于号呢?其实这也是C语言特有的一种写法,一个等于和两个等于是代表着不同的含义。
一个“=”的意思赋值,什么叫赋值呢?
如a=1,b=3,c=5若a=b,c=a,则a=3,c=3。
如我们所见 a 的值为1,b 的值是3,c 的值是5,这些字母本来是没有意义的,因为有“=”,所以把后面的数字的值就给了字母,字母也就有了值。若 a=b 那么我们c语言就会把 b 的值给 a ,所以 a 的值变成了3,。
同时要注意的是,一个字符(如abc)只能有他们唯一一个值,所以之前 a 是1的值就被覆盖了。
好了我们来看看“==”的意义,双等于号的意思就是“等于”。
那么 a==b和b==a 有什么区别呢?这样的语句往往不会单独出现,常常出现在判断语句里面,如果 a 等于b 或是 b 等于 a,等于执行一种,不等于又执行不同的语句。
这两个没有什么太大的区别,唯一的区别是在判断的时候前面的那个字母占的比重多一些,a 是否等于 b,告诉我们 a 才是最重要的。
相信通过我的讲解大家对“=”的理解又加深了一层,希望能帮到大家。
你说吧,就是琢磨不出来才来提问的
追答你都采纳了我还说啥……
这是考研题目,不是说要在平时的代码里写这样的语句,而是想要理解其中的计算过程