Bài toán đặt ra là đánh dấu các số chẵn trong ma trận bằng <>
Em dùng biến copy để đánh dấu (mục đích là để dành matrix chứa toàn bộ int để dùng lần sau)
Nhung mà khi đổi giá trị trong copy thành string thì giá trị trong matrix cũng đổi theo
Mọi người giải thích giúp ạ
Tại sao dùng biến để thay thế nhưng ma trận gốc vẫn bị thay đổi
copy = matrix
chỉ là swallow copy thôi, không phải deep copy nên copy
không hoàn toàn tách biệt hẳn với matrix
ban đầu.
3 Likes
Hành động gán biến copy = matrix chỉ là đặt thêm tên mới cho vùng nhớ thôi. Nên mọi thao tác với ma trận copy cũng thay đổi ma trận matrix.
Tương tự như bạn đặt thêm biệt danh cho chính mình vậy. Người ta nhắc đến biệt danh mới hay tên thật của bạn thì bạn vẫn là bạn.
3 Likes
Dùng cách gán biến của các ngôn ngữ khác áp dụng qua Python chỗ này là… banh xác ngay và luôn.
Muốn nó tạo ra một bản sao thì phải dùng copy
2 Likes
Em hiểu rồi, cảm ơn mọi người ạ
1 Like