请问大家在C++中递增运算符"++"的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/27 21:52:05
----大家先看看下面这小段代码:
#include<iostream.h>
void main()
{
int a = 10;
int c,b;
c = a++;
d = ++a;
cout<<c<<endl; //请问为什么C还是等于10;
cout<<d<<endl; //请问为什么D却等于11了?
}
-
----书上说,++在操作数的右侧是后缀运算,在左侧是前缀运算。但是书上没有说明到底什么是前缀运算,什么是后缀运算。请大家给我详细的说一下前缀运算与后缀运算。谢谢大家。
----实在感谢大家呀,呵呵,要详细的哦。。谢谢大家!

题目错了...前面是b后面是d...
而且答案也错了...
应该是输出
10
12
才对...

c=a++//这里的++在后面 你可以直接理解为是把c=a 然后++是留到下次运算的时候加上

d=++a//这应该是等于12,因为前面的++效果这时候才加上,然后a就等于11,再加上这次a前面的++(前面的++就是这次先加上然后再给)所以是12...

前缀和后缀就是直接看++是在a的前面还是后面.前面就是先加.后面就是下一个式子的时候才加.

A++是先用A 然后再加1
++A是在用A之前,先加1,使用A

简单的说:
c = a++;就是
c = a;
a = a+1;

而d = ++a; 就是
a = a+1;
d = a;

一个是用了再加,一个是加了再用。

后缀运算:c = a++;
等价于:
c = a;
a = a + 1;

嵌缀运算:d = ++a;
等价于:
a = a + 1;
d = a;

明白了?嵌缀是先加后用,后缀是先用后加。

这个只是标准里面规定的,实际中前缀和后缀的运算顺序并不一定就是这样,依赖于编译环境。所以,聪明人不会这样写。会把这一句拆开来写,这样可以保证运算顺序不会出问题。