问题描述:
int i = 0,j;
j = i ++;
printfl("%d\t%d\n",i,j);
i = 0 ;
j = ++i ;
printfl("%d\t%d\n",i,j);
我是刚学的```
所以不知道=多少``
在VC6.0里面是=
1 0
1 1
可是我自己理解的是
j = i++
的意思是;
j = i(0)++(1)所以j=1 i=0
怎么VC6.0的是 i = 1 j = 0
请高手教一下```
我没有积分了``就5分``求救了``
下面的
i = 0 ;
j = ++i ;
我就更不懂了``
怎么两个都得1啊``
++i 和 i++
有什么区别啊``
本人比较笨希望有高手举例说明
本人QQ449342034
不知道是不是我这样理解的·
int i = 0,j;
j = i ++;
j+i(0)
因为i还没有被自增说以·
j+为自增的i=0
因为j=i++
i++=1
所以i就等于1
i = 0 ;
j = ++i ;
因为J = 以自增的++i
说以J=1
++i也=1
问题解答:
int i = 0,j;
j = i ++;
printfl("%d\t%d\n",i,j);
这i++是先用后加,即先使用,所以j将被赋值为0,但此时i++,i的值已经被改变为1了
下面的
i = 0 ;
j = ++i ;
printfl("%d\t%d\n",i,j);
++i是先加后用,故j=1,而i照样自加了,因此i此时的值为1.
回答完毕
哈哈
简单的说是先加和后加的问题,++i是最先运算这个而i++就不是最先运算
举个简单的例子加减乘除先算乘除再算加减是个先后运算的规则,而这个也是这样的规则
i++就是先使用后增加
++i就是先加后使用
j=i++是先把i=0这个值给j,给了j后,i再加1,所以j=0,i=1;
j=++i是i先加1,然后把i=1这个值给j;所以j=1,i=1.
i++
要做构造函数,然后析构
而++i,不需要做构造函数
效率更快
i++ 先用在+
++i 先加再用
2个最后的结果都是+1