在C++语言中,i++与++i有什么区别?那i--和--i呢
答案:6 悬赏:0 手机版
解决时间 2021-01-27 19:29
- 提问者网友:喧嚣尘世
- 2021-01-27 16:22
在C++语言中,i++与++i有什么区别?那i--和--i呢
最佳答案
- 五星知识达人网友:不甚了了
- 2021-01-27 16:40
后自增i++与前自增++i本身都是先进行自增(++)操作,然后在进行赋值等操作,但是这里容易搞错的问题是:后自增操作符即i++返回的是将操作数原来的、未修改的值作为表达式的结果值;前自增操作符即++i返回的是将修改后的的操作数的值作为表达式的结果值。尤其要注意的是:在这之后前自增和后自增中i值都增加了1。
下面来看一个例子:
#include
using namespace std;
int main ( )
{
int i = 10, j = 10;
int a, b;
a = i++;
b = ++j;
cout << "a = " << a << " b = " << b << endl;
return 0;
}
可以预测结果为: a = 10 b = 11
我们将此程序编译运行后发现,结果确实如此。现在应该明白了吧。
同理i--和--i也是如此
下面来看一个例子:
#include
using namespace std;
int main ( )
{
int i = 10, j = 10;
int a, b;
a = i++;
b = ++j;
cout << "a = " << a << " b = " << b << endl;
return 0;
}
可以预测结果为: a = 10 b = 11
我们将此程序编译运行后发现,结果确实如此。现在应该明白了吧。
同理i--和--i也是如此
全部回答
- 1楼网友:廢物販賣機
- 2021-01-27 21:03
这种算法要用例子才能说明的了!比较全面的例子好像这样:
当i=5时,求s=(++i)+(++i)和s=(i++)+(i++)的值
当i=5时,s=(++i)+(++i)=13 先算第一个(++i),++在前面,就把i先加1再把赋值,即先把i变为6然后再得出(++i)的值为6,这时i已经变为6了,再计算第二个(++i),++在前面,也是先把i加1后再赋值,不过这时的i已经为6了,第一步的时候把i变成6了的,然后加1的话就变成7了,所以第二个(++i)的值为7,s=(++i)+(++i)=6+7=13.
s=(i++)+(i++)=11 先算第一个(i++),i在前面,就先赋值再把i加1,即(i++)的值为5,i的值变为6,第二个(i++),i在前面,先赋值再把i加1,这个时候的i已经为6了,即(i++)的值为6,而i已经变为7了!所以s=(i++)+(i++)=5+6=11.
相信你看得懂这个例子,基本上就会怎么算了!
i--和--i跟i++和i++是一样算法的,只不过一个是加一个是减!
------白猪(幸福快乐)
- 2楼网友:神也偏爱
- 2021-01-27 19:53
两者都是i的自加,也就是说两个运算执行之后i都是比原来大1,不同的它们都是表达式,表达式++i的值就是i自加后的值,而++i是i自加前的值,同理--i与i--也是这个道理
- 3楼网友:廢物販賣機
- 2021-01-27 19:23
i++就是先用i再++
++i就是先++在用i
++就是+1的意思
- 4楼网友:十年萤火照君眠
- 2021-01-27 18:18
你不明白i++和++i的区别,表达式都是有值得,你这个程序,i++的值是i就是5,用完了i++的值在自加1就成了6了,就是所谓的先运算在增1
然后++i的值是i+1,就是7,就是所谓的先增1再运算
不理解还可以问我
------------------------------------
回答者:夜雪天狼
来自华夏联盟
------------------------------------
- 5楼网友:几近狂妄
- 2021-01-27 18:03
i++就是先用i再++
++i就是先++在用i
++就是+1的意思
...
比如i=3;
b=i++就是说b=3,完成之后让i变成4
b=++i就是先让i++变成4,然后b=4
--就是自减,和上面的++相反
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯