
Mọi người cho em hỏi câu này tại sao ra đáp án này được không ạ?
Em có tìm hiểu về g++ và ++g nhưng vẫn k hiểu sao nó ra dk đáp án này nữa?

Mọi người cho em hỏi câu này tại sao ra đáp án này được không ạ?
Em có tìm hiểu về g++ và ++g nhưng vẫn k hiểu sao nó ra dk đáp án này nữa?
Nói một cách đơn giản bằng ví dụ sau
g = 0;
x = ++g;
tương đương
g = 0;
g = g + 1;
x = g;
Còn
g = 0
x = g++;
tương đương
g = 0;
x = g;
g = g + 1;
Nếu mà như vậy thì lúc in ra màn hình theo thứ tự g, ++g, g++ thì nó sẽ phải ra là 1 , 2, 2 chứ bạn.
In g: g =1 nên in ra 1
In ++g: g= g + 1;. Sau đó in g là ra 2.
In g++: In ra 2. Sau đó g = g + 1;
Mình cũng đồng ý với bạn. Nhưng sao lại vậy nhỉ 
Đã có rất nhiều tranh cãi về vấn đề này, mà mình nghĩ là do compile nó quyết định 
Bạn có thể lấy 1 ví dụ được không bạn?
Undefined behavior. Cái này không thể nghĩ bàn 
Các bác có thể cho em một ví dụ so sánh giữa 2 compiler khác nhau dk k ạ?
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?