Tiếp theo đoạn mã:Tham chiếu không tham chiếu ở bất kỳ đâu?
int ia[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
int(&row)[4] = ia[1];
Tôi không thể lấy đầu của tôi xung quanh lý do tại sao mã đặc biệt này là hợp lệ. Đối với sự hiểu biết hiện tại của tôi, tôi không có một lời giải thích hợp lý. Ai đó có thể giúp tôi với điều đó không? Vấn đề của tôi là với &row
mà dường như không đề cập đến bất cứ đâu. Lời giải thích duy nhất của tôi là điều này phải hợp lệ vì nó khởi tạo.
Tôi đã có lời giải thích sau đây từ cuốn sách của tôi:
.... chúng ta định nghĩa hàng như một tham chiếu đến một mảng của Bốn ints
Những mảng? Cái mà chúng ta sắp khởi tạo?
"Ở đây phần int (& row) [4] khai báo một hàng có tên tham chiếu có thể tham chiếu một mảng gồm 4 int." - điều này có nghĩa là nó chỉ có thể nhưng nó không? Hay nó chỉ vào mảng mà là nhận được initalised? – HansMusterWhatElse
@KingJulian Nó có thể thực hiện, bạn khởi tạo nó (phần '= ia [1]' để tham chiếu (hoặc trỏ tới nếu bạn muốn, nhưng từ "trỏ tới" thường được sử dụng với con trỏ, không phải tham chiếu) một mảng gồm 4 int. Có lẽ bạn cần đọc qua ví dụ: [this] (http://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-in). – nos