tôi có mã này:C Strings So sánh với Equal Đăng
char *name = "George"
if(name == "George")
printf("It's George")
Tôi nghĩ rằng chuỗi c không thể được so sánh với ==
dấu hiệu và tôi phải sử dụng strcmp
. Vì lý do không rõ khi tôi biên dịch với gcc (phiên bản 4.7.3), mã này hoạt động. Tôi mặc dù điều này là sai bởi vì nó giống như so sánh con trỏ vì vậy tôi tìm kiếm trong google và nhiều người nói rằng nó sai và so sánh với ==
không thể được thực hiện. Vậy tại sao phương pháp so sánh này hoạt động?
sử dụng 'strcmp()', bạn đang so sánh địa chỉ. –
Bạn có thể kiểm tra xem tại đây http://stackoverflow.com/questions/13253113/strcmp-with-pointers-not-working-in-c. – someone
@nouney UB là gì? Tôi không thấy lý do nào cho nó. –