Trong bối cảnh đó, các & làm cho biến một tài liệu tham khảo.
Thông thường, khi bạn chuyển một biến cho hàm, biến được sao chép và hàm hoạt động trên bản sao. Khi hàm trả về, biến ban đầu của bạn không thay đổi. Khi bạn vượt qua một tham chiếu, không có bản sao nào được thực hiện và các thay đổi được thực hiện bởi hàm sẽ hiển thị ngay cả sau khi hàm trả về.
C không có tài liệu tham khảo, nhưng C++ tham chiếu là chức năng giống như một con trỏ trong C. Thật sự khác biệt duy nhất là con trỏ phải được dereferenced khi bạn sử dụng chúng:
*filename = "file.wav";
Nhưng tài liệu tham khảo có thể được sử dụng như thể chúng là các biến ban đầu:
filename = "file.wav";
Bề ngoài, tài liệu tham khảo có nghĩa vụ phải bao giờ được null, mặc dù nó không phải là không thể cho điều đó xảy ra.
Chức năng C tương đương sẽ là:
void read_wav(const char* filename)
{
}
Điều này là do C không có string
. Thực hành thông thường trong C là gửi một con trỏ tới một mảng các ký tự khi bạn cần một chuỗi ký tự. Giống như trong C++, nếu bạn nhập một hằng số chuỗi
read_wav("file.wav");
Loại là const char*
.
http://en.wikipedia.org/wiki/Reference_ (C% 2B% 2B) –
như @Tim Medora đã nói http://en.wikipedia.org/wiki/Reference_%28C%2B%2B%29 (nhưng tôi đã sửa liên kết;)) –
@ Hernán Eche - Dán thất bại một phần của tôi ... Cảm ơn! –