@neverbackdown9x5f
& có nghĩa là reference. Bạn xem bài
Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
Thông tin về khóa học xem tại đây :
-Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …
* là con trỏ, chắc ai cũng biết rồi.
Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
Thông tin về khóa học xem tại đây :
-Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …
*& có nghĩa là reference đến pointer. Mà reference cho phép thay đổi được giá trị mà nó reference tới. Vậy ở đây con trỏ có thể thay đổi được.
Xem swap by reference
Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
Thông tin về khóa học xem tại đây :
-Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …
Hoặc bạn có thể thử như sau:
#include <iostream>
void change_pointer(int * p)
{
p = 0;
}
void change_pointer_by_ref(int *& p)
{
p = 0;
}
int main()
{
int * p = new int;
std::cout << "p = " << p << std::endl; // 0x372160
change_pointer(p);
std::cout << "p = " << p << std::endl; // 0x372160
change_pointer_by_ref(p);
std::cout << "p = " << p << std::endl; // 0
return 0;
}
Thử in giá trị của p sau khi sử dụng 2 hàm. Thì chỉ có hàm change_pointer_by_ref là giá trị của con trỏ p bị thay đổi thôi.