這是用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.
- 1 回答
- 0 關注
- 1112 瀏覽
添加回答
舉報
0/150
提交
取消