Hi mọi người, mình đọc được câu hỏi này trên mạng mà không biết giải thích như thế nào. Nhờ mọi người giúp đỡ.
#include <stdio.h>
int main()
{
int a=10;
printf("%d %d %d %d %d ",++a,a++,a,--a,a--);
}
Output: 10 8 10 10 10
Hi mọi người, mình đọc được câu hỏi này trên mạng mà không biết giải thích như thế nào. Nhờ mọi người giúp đỡ.
#include <stdio.h>
int main()
{
int a=10;
printf("%d %d %d %d %d ",++a,a++,a,--a,a--);
}
Output: 10 8 10 10 10
Undefined Behavior chăng?
Không thể nghĩ bàn
Tức là ntn: Vừa truy cập một biến (nói chung là ô nhớ) hai lần trở lên, và vừa thay đổi biến đó giữa hai sequence point là undefined behavior.
Nghĩa là i +++ i
là sai.