Sự khác biệt giữa tính năng chuyển-qua-tham chiếu và sử dụng ký hiệu con trỏ C là gì?Sự khác biệt giữa tham chiếu chuyển tiếp và *?
void some_function(some_type& param)
và
void some_function(some_type *param)
Cảm ơn
Sự khác biệt giữa tính năng chuyển-qua-tham chiếu và sử dụng ký hiệu con trỏ C là gì?Sự khác biệt giữa tham chiếu chuyển tiếp và *?
void some_function(some_type& param)
và
void some_function(some_type *param)
Cảm ơn
Khi bạn chuyển con trỏ đến biến trong cuộc gọi chương trình con, địa chỉ của biến đó được chuyển đến chương trình con. Để truy cập biến trong chương trình con, con trỏ phải được bỏ qua.
Khi bạn chuyển tham chiếu đến biến, trình biên dịch sẽ xử lý địa chỉ của biến khi biến được chuyển đến chương trình con và bỏ qua biến trong chương trình con.
Thật tuyệt vời! Điều này giúp rất nhiều! –
Đó chắc chắn KHÔNG phải là một cú pháp. Có những khác biệt, như bạn có thể thấy từ các câu trả lời khác. – SadSido
Có nhiều khác biệt tinh tế giữa hai tham chiếu là một bí danh. Xem bên dưới. –
Về cơ bản, bạn xử lý một con trỏ an toàn như thể đó là đối tượng của riêng bạn.
bạn có thể dễ dàng nhận được một tham chiếu null bởi dereferencing một con trỏ null. – Jherico
Thats là phòng thủ hay hoang tưởng ?? –
Nó thường là một sai lầm: điểm tham chiếu của bạn đến một đối tượng đã bị phá hủy hoặc chưa bao giờ tồn tại. Ví dụ khét tiếng: 'std :: vector
Tôi nghi ngờ ai đó sẽ tái tạo một trong 1000 hướng dẫn và giải thích đã tồn tại ở đây. Hãy xem: http://www.parashift.com/c++-faq-lite/references.html – pmr
dupe có thể có: http://stackoverflow.com/questions/57483/difference-between-pointer-variable-and -reference-variable-in-c – Jherico
duplicate: http://stackoverflow.com/questions/1322517/passing-a-modifiable-parameter-to-c-function – SadSido