01/10/2018, 08:18

Hỏi về 1 đoạn code trong C++?

#include
using namespace std;
int main() {
int i=-3, j=2, k=0, m;
m = ++i && ++j || ++k;
cout << i << j << k << m << endl;
return 0;
}

Tới phần quiz của a Đạt thì nó đưa dòng code này rồi cho chộn kết quả, mình paste vào VS thì nó để là “-2301”, tại sao lại như zậy ?

Ngo Hoang Khang viết 10:21 ngày 01/10/2018

sorry mn, mình hiểu rồi :V mà ko biết xóa bài

Hoang Kien viết 10:19 ngày 01/10/2018

Trong C/C++ quy định false là = 0, true là #0. Phép toán and (&&) chỉ đúng khi 2 toán hạng cùng đúng. Phép toán or (||) chỉ sai khi cả 2 cùng sai. Trong biểu thức m ko có ngoặc nên ko có phép toán ưu tiên nên thực hiện từ trái sang phải. Phép toán ++j thì ta thực hiện phép tăng lên 1 đơn vị rồi mới tính toán => m=-2&&3||0=1(true). Do dùng Phép toán || (2 dấu ||) nên vế trước đúng rồi sẽ ko thực hiện kiểm tra ++k nữa.

Ngo Hoang Khang viết 10:23 ngày 01/10/2018

thanks nhiều nha bác
<3

Hoang Kien viết 10:22 ngày 01/10/2018

Mình type bằng ĐT. Lúc type xong thì bạn đã hiểu rồi

Ngo Hoang Khang viết 10:33 ngày 01/10/2018

không sao bác ước j daynhauhoc có chức năng giọng nói noi1 phát cho nhanh :V

Bài liên quan
0