#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=10, y;
y = x++ + ++x;
printf("%d %d",y, x);
return 0;
}
Em mới thi bài này xong, theo như em nhẩm thì y = 21 mà sao test lại trên code block lại ra y = 2 vậy ạ.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=10, y;
y = x++ + ++x;
printf("%d %d",y, x);
return 0;
}
Em mới thi bài này xong, theo như em nhẩm thì y = 21 mà sao test lại trên code block lại ra y = 2 vậy ạ.
y = 22 nhé.
y = x++ + ++x chính là y = 10 + 12;
ủa sao x sau bằng 12 bác, tưởng sau khi tính y thì x mới lên 12.
y = x++ (1) + ++x (2)
(1) vì ++ đằng sau là toán tử hậu tố nên nó tính toán trước rồi mới tăng giá trị lên sau //nên x vẫn = 10 và sau đó trả lại kết quả là x =11 cho phép tính sau
(2) vì ++ đằng trước là toán tử tiền tố nên nó tăng giá trị lên trước rồi mới thực hiện tính toán//nên x=11 ở phép toán trước và được cộng thêm 1 rồi mới thực hiện tính toán
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?