30/09/2018, 18:40
Em mới học có câu hỏi thắc mắc: Tại sao khi ghi if(a=b) trình dịch lại không báo lỗi?
mọi người cho e hỏi e mới học C đk 1 thời gian e để ý thấy khi viết if(a=b) hoặc if(a==b) thì lúc debug đều ko báo lỗi. Em biết “=” là ko đúng nhưng các tiền bối có thể giải thích giùm e tại sao ko ạ? tại sao khi duyệt trình dịch vẫn cho qua ạ?
Bài liên quan
Bởi vì a=b là nó gán giá trị của b cho a rồi so sánh.
= là phép gán. Trong câu lệnh if thì phải sử dụng biểu thức logic tức là ở đây phải dùng ==
do máy hiểu là phép gán nên k sai gì cả,bạn.
Nếu em không nhầm thì
Trong if là một biểu thức đúng - sai ( khác 0 - bằng 0 ) , bạn dùng a=b có nghĩa là bạn gán cho giá trị a bằng b , nếu b khác 0 thì a khác 0 và biểu thức đó sẽ là đúng > lệnh if thực hiện, ngược lại nếu b = 0 thì a= 0 , biểu thức trong if là sai > lệnh sẽ ko đc thực hiện