01/10/2018, 16:41
Thắc mắc về đoạn code sử dụng ++ prefix
Vì sao chạy xong thấy hiện giá trị của d = 21 nhỉ, đáng lẽ d = a + b =19 chứ ? Mn giải thích giúp mình với
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 10;
int b = 9;
printf("c = %d
", ++a + ++b);
printf("d = %d", a+b);
return 0;
}
Bài liên quan
Vì a và b đã bị thay đổi rồi mà
Bạn nhớ Markdown code lại cho mọi người dễ nhìn nhé ! Nhớ chỉnh luôn Category và tag phù hợp !
Cách post Code dùng Markdown trong Category Programming
Vì ở đây bạn dùng
++a
và++b
, khiến cho giá trị của a và b tăng thêm 1 đơn vị.Ơ nhưng mà a, b chỉ bị thay đổi trong cái printf tình c ở trên thôi chứ nhỉ, còn cái ở dưới là khác mà
Ok cảm ơn bạn đã nhắc, mình mới biết
Nhuưng mà mình nghĩ là a, b chỉ bị thay đổi trong cái printf tính c ở trên thôi chứ nhỉ, còn cái ở dưới là khác mà
a
của cả hai câu chỉ là một biến mà bạn Vàb
cũng vậy.Bởi vì ++ luôn thay đổi giá trị của biến, còn nó trả về trước hay sau là chuyện khác.
Đầu tiên bạn khai báo và gán giá trị cho a = 10, b = 9. Trong lệnh printf đầu tiên, ++ prefix sẽ thêm 1 đơn vị vào hai biến a và b. Lúc này giá trị mới của hai biến sẽ lần lượt là a = 11 và b = 10 chứ không còn là giá trị ban đầu bạn gán nữa. Do đó kết quả sẽ là 21 chứ không phải 19.
++ Prefix nghĩa là lấy giá trị hiện tại của biến, tăng thêm 1 đơn vị, sao đó gán lại vào biến.
Thao khảo thêm về Prefix Increment và Decrement Operators tại đây.
Ok mình hiểu rồi, thanks mọi người nhé