30/09/2018, 22:01
Hỏi về địa chỉ của phần tử trong mảng nhiều chiều
giả sử mình có khai báo
int a[3][3];
int b[3][3][3];
nếu như địa chỉ của a[0][0] là 100 , của b[1][1][1] là 1000 thì địa chỉ của a[1][2] , b[2][1][2] là bao nhiêu ạ và cách tìm như thế nào ?
Bài liên quan
nếu địa chỉ a[0][0] là 100 thì a[1][2] là 120, nếu b[1][1][1] là 1000 thì b[2][1][2] là 1040.
Tính thế nào vậy bạn ?
Kiểu int thì chiếm 4 bytes, cho nên a[0][0] sẽ chiếm các địa chỉ từ 100 đến 103 (đúng 4 bytes), địa chỉ của 1 biến hay 1 phần tử của mảng là địa chỉ đầu tiên (ở đây là 100). Cho nên a[0][1] sẽ chiếm từ 104 đến 107, có địa chỉ là 104.
Mảng hai chiều hay mảng ba chiều khi lưu trong bộ nhớ cũng chỉ là mảng một chiều mà thôi . a[0][1] nối tiếp a[0][0]. Tương tự, a[1][0] sẽ nối tiếp a[0][2]. Nếu a[0][2] có địa chỉ là 100, thì a[1][0] có địa chỉ là 104.
Mình cứ nghĩ a[0][0] là 100 thì a[0][1] là 101. Cảm ơn bạn.