我似乎无法理解此操作。 以下代码的输出是什么? 我试图解释为什么b的两个不同值中的一个为:b = 1 + 2,另一为:b = 2,由于++应等于一个= 1 + a,然后将COUT是要求++ B,其中一个它应该等于,b = 2-1还是b = 3-1?C++操作太混乱了?
int a=3;
int b=2;
b=a++;
cout<<++b;
我知道这个问题的答案是4,但我无法得到我的头。
我似乎无法理解此操作。 以下代码的输出是什么? 我试图解释为什么b的两个不同值中的一个为:b = 1 + 2,另一为:b = 2,由于++应等于一个= 1 + a,然后将COUT是要求++ B,其中一个它应该等于,b = 2-1还是b = 3-1?C++操作太混乱了?
int a=3;
int b=2;
b=a++;
cout<<++b;
我知道这个问题的答案是4,但我无法得到我的头。
但我不能让我的头周围。
当发生这种情况,你可以尽量简化报表/表达式。
由于使用递增运算符的,
b = a++;
等同于:
b = a;
a = a+1;
由于使用预先递增运算符的,
cout<<++b;
等同于:
b = b+1;
cout << b;
希望这是有道理的现在。
是的,这是有道理的。谢谢!! – dontbadick
为什么B有两个不同的值
b
没有两个不同的值。 b
,a
,以及其他一切,在任何给定的时间总是有一个值。它可能在不同的时间有不同的值,但在给定的时间它总是只有一个值。
由于a
是3,则:
b=a++;
b
设置到3,因为a
值在表达式中使用后的后增量操作修改的a
值。
cout<<++b;
此输出4,因为它是在表达式中使用之前,预先递增操作修改的b
值。由于b
开始时与3
,它就会被递增到4,然后在表达式中使用。
就打破它在以下列方式,它的各个部分: 'INT A = 3; // a当前是3' 'int b = 2; // b目前是2' 'b = a ++; //后增加运算符。指定a到b然后递增a(a = 4 now)' 'cout << ++ b; //预增加运算符。将b增加1,然后打印结果(4)' – NooGuy