01/10/2018, 15:12

Hỏi về toán tử 1 ngôi trong C

Em mới học đến phần này của C và có rất nhiều những thắc mắc về biểu thức ++x,mặc dù em đã đọc khá kĩ lí thuyết ,sự khác nhau ++x và x++ những khi nhìn ví dụ trong slide bài giảng thì em vẫn rất hoang mang,mọi người giúp giải thích giúp em được không ạ



2 ảnh kia thật sự em rất hoang mang ạ

viết 17:26 ngày 01/10/2018

câu lệnh printf của em gây ra undefine behavior vì trong C các tham số được truyền vào hàm số ko theo thứ tự nào hết, đừng lầm tưởng là nó truyền từ trái sang phải.

ví dụ a = 0; f(a = 1, a, a = 2); thì trình biên dịch hoàn toàn có thể hiểu là f(1, 1, 2) hoặc f(1, 2, 2), hoặc f(1, 0, 2), hoặc f(2, 2, 2), f(1, 1, 1), v.v…

em đang xài Dev-C++ thì tìm xem cách nào truyền thêm -Wall vào trình biên dịch lúc nó biên dịch chương trình xem nó có warning ko, nếu ko thì em tìm cái thư mục có chứa trình biên dịch cho DevC++, rồi click chọn nò, rồi bấm ShiftDelete và down trình biên dịch khác về nhé.

nếu nó có in ra warning như thế này thì tốt:

prog.cc:6:28: warning: operation on 'i' may be undefined [-Wsequence-point]
     printf("%d %d\n", ++i, ++i);
                            ^~~
Bài liên quan
0