Chú ý là cả 2 operator đều return giá trị của ô nhớ tạm chứ không phải a trước hay sau khi cộng. Giải thích rõ hơn ở http://stackoverflow.com/questions/3346450/what-is-the-difference-between-i-and-i (Câu trả lời được nhiều upvote nhất chứ không phải câu được đánh dấu tick)
Nói chung là mình không bao giờ dùng b = ++a hay gì đó đại loại thế, khó đọc, dễ nhầm. Mình thường viết là a += 1; b = a (a += 1 nhanh hơn a = a + 1 tí ti, bạn có thể tự search Google)
b=++a => b=a+1; a=a+1;
b=a++=> b=a; a=a+1;
Đây là cú pháp của C, không có khác biệt khi không có biến bên trái nhưng sự khác nhau bạn đã nhìn ra khi b xuất hiện.
thay bằng
b = ++a;
Giải thích
a++ tương đương với
++a tương đương với
Chú ý là cả 2 operator đều return giá trị của ô nhớ tạm chứ không phải a trước hay sau khi cộng. Giải thích rõ hơn ở http://stackoverflow.com/questions/3346450/what-is-the-difference-between-i-and-i (Câu trả lời được nhiều upvote nhất chứ không phải câu được đánh dấu tick)
tại sao vậy bạn, theo cú pháp thì có thể dùng a++ mà
Nói chung là mình không bao giờ dùng
b = ++a
hay gì đó đại loại thế, khó đọc, dễ nhầm. Mình thường viết làa += 1; b = a
(a += 1
nhanh hơna = a + 1
tí ti, bạn có thể tự search Google)vậy ++a thì a = a +1, a++ thì a = a . Vậy thì người ta chia ra ++a với a++ để làm gì bạn
b=++a => b=a+1; a=a+1;
b=a++=> b=a; a=a+1;
Đây là cú pháp của C, không có khác biệt khi không có biến bên trái nhưng sự khác nhau bạn đã nhìn ra khi b xuất hiện.
cảm ơn các bạn. thuật toán thật vi diệu. Làm thế nào mà người ta nghĩ ra được 1 ngôn ngữ hay như c++ nhỉ ?