Tham chiếu nghĩa là lấy địa chỉ của biến hiện tại (sử dụng &) để đặt biến con trỏ. Để có giá trị, một con trỏ phải được thiết lập để địa chỉ của một biến kiểu tương tự như con trỏ, mà không có dấu hoa thị:
int c1;
int* p1;
c1 = 5;
p1 = &c1;
//p1 references c1
dereferencing một con trỏ có nghĩa là sử dụng toán tử * (dấu hoa thị ký tự) để truy cập giá trị được lưu trữ tại một con trỏ: LƯU Ý: Giá trị được lưu trữ tại địa chỉ của con trỏ phải là giá trị CỦA LOẠI CÙNG là loại biến con trỏ "điểm", nhưng có không đảm bảo đây là trường hợp trừ khi con trỏ được đặt chính xác. Loại biến mà con trỏ trỏ đến là loại ít dấu hoa thị ngoài cùng.
int n1;
n1 = (*p1);
không hợp lệ dereferencing có thể hoặc không có thể gây ra tai nạn:
- Bất kỳ dereferencing của bất kỳ con trỏ chưa được khởi tạo có thể gây ra một vụ tai nạn
- dereferencing với một kiểu dàn diễn viên không hợp lệ sẽ có khả năng gây ra một vụ tai nạn.
- dereferencing một con trỏ đến một biến mà được cấp phát động và sau đó đã được de-phân bổ có thể gây ra một vụ tai nạn
- dereferencing một con trỏ đến một biến mà kể từ đó đã đi ra khỏi phạm vi cũng có thể gây ra một vụ tai nạn.
không hợp lệ tham khảo có nhiều khả năng gây ra lỗi biên dịch hơn tai nạn, nhưng nó không phải là một ý tưởng tốt để dựa vào trình biên dịch cho việc này.
Tài liệu tham khảo:
http://www.codingunit.com/cplusplus-tutorial-pointers-reference-and-dereference-operators
& is the reference operator and can be read as “address of”.
* is the dereference operator and can be read as “value pointed by”.
http://www.cplusplus.com/doc/tutorial/pointers/
& is the reference operator
* is the dereference operator
http://en.wikipedia.org/wiki/Dereference_operator
The dereference operator * is also called the indirection operator.
Nguồn
2013-01-08 22:15:56
http://c-faq.com/~scs/cgi-bin/faqcat.cgi?sec=ptrs –
Lưu ý rằng tên chính thức là địa chỉ ('&') và toán tử gián tiếp ('*') . –
Bạn có các toán tử trộn lẫn. * là toán tử hủy đăng ký. – cheznead