30/09/2018, 17:40
Tại sao khi dùng `int *a` truyền vào hàm, khi thay đổi địa chỉ truyền vào `a` thi nó không thay đổi ở hàm main nếu không co return?
Việc là khi em dùng int*a truyền vào hàm, khi thay đổi địa chỉ truyền vào a thi nó không thay đổi ở hàm main nếu không co return. tại sao ? và khi em dùng *int & thì lại được. vậy phải tham chiếu cho con trỏ hả mọi người.
Bài liên quan
biến con trỏ thực ra cũng chỉ là một biến.
thế nên int* a truyền vào hàm thì C++ sẽ tạo ra một bản sao là một con trỏ - cùng trỏ đến ô nhớ mà a đang trỏ, còn int* &a thì không tạo bản sao. Giống như int a và int &a vậy.
Khi bạn có nhu cầu thay đổi giá trị của biến con trỏ (ví dụ như cấp phát bộ nhớ) thì dùng tham chiếu cho biến con trỏ.
àh…cám ơn anh nhiều