Sự khác nhau của if(p->key_=x) và if(p->key_==x) trong c++

mình đã làm trong danh sách liên kết trong hàm find_node nhưng kết quả khác nhau,
ai có thể giải thích ko

nếu bạn dùng if(x=y) sẽ gán giá trị của y cho x, và se gây ra lỗi
còn if(x==y) đơn giản dùng để so sánh xem x có bằng y hay không.

1 Like

x=y là phép gán y cho x còn x==y là phép so sánh x với y bằng nhau hay không, if(x=y) sẽ bị lỗi

1 Like

chưa chắc

node *tim_node(node * head, int x){
	node *p = head;
	
	
	while (p->key_!=NULL)
	{
		if (p->key_== x){
		
			return p  ;
			p = p->next_;
		}
				return NULL;
		}
		}

thì nó chạy lỗi
còn nếu mình sửa thành
if (p->key_= x) nó chạy hoàn hảo
là sao :triumph:

sao có dấu cách giữa 2 dấu = v bạn??

1 Like

mình up lên bấm bậy đó mà, nhưng cũng vậy thui

mình đổi tên topic cho rõ hơn :wink:

ko ai biết à :cry::sleepy:

Điều kiện vòng while sai, phải là p!=NULL. p=p->next_; cũng phải ở ngoài if. Hoặc là làm thế này cho gọn:

while(p!=NULL&&p->key_!=x){
      p=p->next_;
}
return p;
1 Like

cũng chạy ra lỗi thui điền head thì dc chứ các node trong link list thì ko ra

code ở đây bạn thử thay đổi theo ý và truyền tham số khác head xem

cảm ơn ae :kissing::smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?