永发信息网

在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也是如此
全部回答
  • 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 --就是自减,和上面的++相反
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯