C++和++运营商
问题描述:
所以我期待在下面的代码片断C++和++运营商
int a = 3;
int b = 2;
b = a++;
cout << ++b;
我的理解逐行是:
- 发起= 3
- 发起B = 2;
- 将(a + 1)的值赋值给b,所以b = 4;
- 打印B + 1,这是5
然而这是错误的,有人可以用简单的术语解释一下吗?我是新的C++
答
在C++中,当递增或递减在表达式中使用的“++”或位置“ - ”事项。 如果操作符在变量之前,那么递增或递减将在表达式结束之前完成,在相反的情况下递增或递减将在整个表达式执行之后完成。
int b = ++a; // first add +1 to a, then assign a to b
int b = a++; // assign a to b, then add +1 to a
答
在这里你去:
- 启动= 3
- 启动B = 2;
- 将(a)的值赋值给b,所以b = 3并将a增加到4;
- 打印B + 1,其为4
+1
这将是很好的解释前缀vs后缀 –
答
在语句:
b = a++
a
用于分配被评估以b
和之后a
然后递增所以a = a+1
。
在另一方面:
b = ++a
增量a
所以a = a+1
以前a
然后评估分配给b
。
你可以看看这里深:
你正在混淆预增量和后增量。 'a ++'和'++ a'不一样。相关:http://*.com/questions/4445706/post-increment-and-pre-increment-concept –