为了账号安全,请及时绑定邮箱和手机立即绑定

请问在C++中的使用比较运算符时,i++与i+1有什么区别?

请问在C++中的使用比较运算符时,i++与i+1有什么区别?

富国沪深 2018-05-20 18:10:44
这是用C++写的数组线性表的插入函数,其中第二个if条件中,如果用 listSize+1 是没有问题的,如果用 listSize++ 程序执行是有错误的(非编译错误)void insert(int location, elementtype theElement)     {        if(location > arrayLength - 1)            cout<<"List is full."<<endl;        if(location > (listSize+1) || location < 1 )            cout<<"Please enter correct value."<<endl;        else         {            for(int n = listSize; n >= location; n--)                 elements[n++] = elements[n];             elements[location] = theElement;             listSize++;         }     }i++和i+1在比较运算符中有什么区别吗?
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

The statement:

    if(location > listSize++ || location < 1 )
        cout<<"Please enter correct value."<<endl;

can be considered like

    if(location > listSize || location < 1 )
    {
        ++listSize;
        cout<<"Please enter correct value."<<endl;
    }

From the C++ Standard (5.2.6 Increment and decrement)

1 The value of a postfix ++ expression is the value of its operand. [ Note: the value obtained is a copy of the original value —end note ]...

So, it will change listSize's value(because of ++listSize;), which is not you hope to see.


查看完整回答
反对 回复 2018-07-21
  • 1 回答
  • 0 关注
  • 1044 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信