cout<<(x++)++; //fails
cout<<++(++x); //passes
Tại sao số lượng bài đăng không thành công? Tôi thấy nó xảy ra nhưng không chắc chắn về lý do kỹ thuật.Nhà điều hành tăng sau +
cout<<(x++)++; //fails
cout<<++(++x); //passes
Tại sao số lượng bài đăng không thành công? Tôi thấy nó xảy ra nhưng không chắc chắn về lý do kỹ thuật.Nhà điều hành tăng sau +
x++
trả về một giá trị để bạn không thể thực hiện lại ++
trên đó. Mặt khác, ++x
trả về một giá trị để bạn có thể thực hiện ++
trên đó.
cũng thấy [câu hỏi này] (http://stackoverflow.com/questions/371503/why-is-i-considered-an-l-value-but-i-is-not) – Benoit
Đây là cách toán tử tăng hoạt động trong C/C++.
Nếu bạn đặt ++
sau biến (tăng số postfix), toàn bộ biểu thức sẽ tính giá trị của biến trước khi tăng.
Nếu bạn đặt ++
trước biến (tiền tố tăng), biểu thức sẽ tính giá trị sau thao tác gia tăng.
Trong khi hoạt động tiền tố trả về tham chiếu đến biến được truyền, phiên bản postfix trả về giá trị tạm thời, không được tăng lên.
Chính xác. yo không thể thực hiện một ++ trên Rvalue. một lời giải thích tốt về cách làm việc rvalue được đưa ra here.
tăng sau tạm thời? – Benoit
Loại 'x' là gì? Điều đó rất quan trọng. Nếu nó là một built-in, 'operator ++' không phải là một cuộc gọi hàm. – MSalters
Của nó được xây dựng trong nói, int x = 5; – user835194