Em có thử chạy chương trình sau trên hai trình biên dịch khác nhau là VS2013 trên Win 7 và gcc trên Ubuntu và cho ra hai kết quả khác nhau. Các bác cùng thử thảo luận xem vì sao lại có kết quả như thế nhé:
#include "stdio.h"
void main()
{
int i = 5, j = 5, y;
int x = (++i) + (++i) + (++i);
y = (++j) + (++j) + (++j);
printf("x = %d, y = %d, i = %d, j = %d\n", x, y , i, j);
}
Kết quả:
Trên VS2013: x = 24, y =24, i = 8, j = 8
Trên Ubuntu: x = 22, y =22, i = 8, j = 8