01/10/2018, 08:48

Hỏi bài về code c++

cho mình hỏi sao code này ko cho ra kết quả là 4 nhỉ?

Trần Hoàn viết 11:02 ngày 01/10/2018

thay bằng b = ++a;
Giải thích
a++ tương đương với

int output=a;
a+=1;
return output;

++a tương đương với

int output;
a+=1;
output=a;
return output;

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)

Nam Trần viết 10:51 ngày 01/10/2018

tại sao vậy bạn, theo cú pháp thì có thể dùng a++ mà

Trần Hoàn viết 10:58 ngày 01/10/2018

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)

Nam Trần viết 11:02 ngày 01/10/2018

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

Nguyên Trọng viết 11:00 ngày 01/10/2018

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.

Nam Trần viết 11:03 ngày 01/10/2018

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ỉ ?

Bài liên quan
0