X++和++X真的不理解是怎么回事
X++是向上加一还是不加
-
嗨,首先是概念,这个你应该是知道的:
前置加加和后置加加
前置:先加加然后赋值
后置:先赋值后加加
最终:a = 2, b = 1
你可以亲自动手运行以下代码:
#include <cstdio>
int main()
{
int n = 1;
printf("%d\n", n++);
n = 1;
printf("%d\n", ++n);
return 0;
}
结果呈现应该如下:
1.首先,它们最终都会让x加1
2.如果单拿出来,单纯的x++或者++x,没区别,都能看做x+=1.
3.如果是作为某句代码的一部分,它们的区别是:
x++是这句代码以当前x的值运行完毕后,再把x加1;
而++x则是先给x加上1,再以这个已经加了1
的值来加。
望采纳。
我做了一个专题,为您量身定做
http://t.csdn.cn/zxMJn
相同:
++X 和 X++ 都表示 X = X+1;
区别:
++X在表达式中先执行
X++在表达式中后执行
若仅仅是 X++; 或 ++X; 则结果相同
int i = 0;
int a = ++i; // 等价于 int a = (i + 1); i = i + 1;
/* 结果
i == 1;
a == 1;
*/ // 先增加后赋值
int i = 0;
int a = i++; // 等价于 int a = i; i = i + 1;
/* 结果
i == 1;
a == 0;
*/ // 先赋值后增加
前++表示先自己加1,再参与运算
后++表示先参与运算,再加1
你比如以下程序:
int a = 10, b;
b = ++a;//这里是前++,自己先加1,在参与运算,所以打印
printf("%d %d\n", a, b); // a+1=10+1=11 b=a+1=10+1=11
int a = 10, b;
b = a++;//这里是后++,先运算,后加1,
printf("%d %d\n", a, b); // 所以a+1 =10+1=11 b=a=10
x++是先➕后计算,反之亦然
X++是先用再加,意思是此时内存中X的值仍为X,执行完此句后X+=1;
++X是先加再用,意思是此时内存中X的值已经为X+1