0
預減操作我有兩個代碼,如下所示:後減和在C++
#include <iostream>
int main() {
int a = 4;
if (a == a--){
std::cout << a << std::endl;
std::cout << "HELLO"<<std::endl;
}
std::cout << a << std::endl;
return 0;
}
輸出是:3
,爲此:
#include <iostream>
int main() {
int a = 4;
if (a == --a){
std::cout << a << std::endl;
std::cout << "HELLO"<<std::endl;
}
std::cout << a << std::endl;
return 0;
}
輸出是:
3
HELLO
3
根據C++ operator precedence,增量和減量運算符(用於前綴和後綴)位於關係運算符==
之前。那麼兩者的預期產出應該是相同的(預計這兩者都是:3
),但事實上並非如此。
任何幫助?此外,如果上述情況導致未定義的行爲,那麼請解釋原因。
...或處理順序點的方式。 –