30/09/2018, 16:03
Poll: Kiểm tra kiến thức C - 2.4
Các bạn thảo luận đáp án nhé, bài test lấy từ http://www.indiabix.com/online-test/c-programming-test/12
4.What will be the output of the program?
#include<stdio.h>
int main()
{
int i=2;
printf("%d, %d
", ++i, ++i);
return 0;
}
- A. 3, 4
- B. 4, 3
- C. 4, 4
- D. Output may vary from compiler to compiler
Bài liên quan
Bài này hay, tưởng C. 4, 4 mà không phải đâu. Vấn đề nó nằm ở chỗ là thao tác ++, ++ này có được định nghĩa hay chưa.
Hớ hớ =)))) Cái này tùy trình biên dịch nha
nghĩa là tùy chương trinh mà nó ra kết quả khác nhau hả bạn ?
Tùy compiler . Vì thao tác này chưa được định nghĩa trong chuẩn của ngôn ngữ. Thành ra không thể nói là làm như thế nào mới đúng được. Mỗi compiler có cách xử lý riêng.
Ví dụ ở VN mọi người hay ăn bằng đũa, nhưng nếu ăn bốc không bị cấm thì việc ăn bốc ở nhà này cho phép, nhà khác không cho phép. Tùy nhà.
Rất thú vị, đã test trên VC9, GCC 4.6.3, GCC 4.8.1 đều cho kết quả 4, 4
Dù có cho kết quả giống nhau cũng không thể chọn C. 4,4 được. Đó là sự trùng hợp ngẫu nhiên hay cố tình ta