Tôi vừa thử mã này:Trong C + +, làm dereferencing và nhận được chỉ số không làm cùng một tihng?
int i = 33;
int * pi = &i;
cout << "i: " << *pi << endl;
cout << "i: " << pi[0] << endl;
Cả hai dòng đều trả về cùng một thứ.
Về cơ bản, nếu tôi lấy chỉ số bằng 0 của bất kỳ con trỏ nào, tôi sẽ nhận được giá trị của loại chính xác tại vị trí của con trỏ. Đó không phải là điều tương tự như dereferencing?
Mỗi lần con trỏ được tham chiếu trong C++, sẽ không nhận được chỉ mục 0 cũng hoạt động không? Tôi không đề nghị bất cứ ai thực sự nên làm điều đó, nhưng tôi nghĩ rằng nó sẽ làm việc. Phải không?
Tôi nên nghĩ như vậy, nhưng tôi không chắc chắn. Giải phóng luật sư ngôn ngữ. – wally
Điều đó đúng trong C. Điều đó đúng trong C++ nếu bạn không khai thác quá tải. – zneak
Khi ** pi = & i ** để tôi sử dụng lại __ * pi__. Bạn có * pi = & i, đó là hai hướng. –