2012-06-27 49 views

Trả lời

9

phần tử mảng luôn cách nhau ở khoảng cách bình đẳng trong bộ nhớ, vì vậy việc tìm kiếm một yếu tố đưa ra một chỉ số yêu cầu một phép nhân bằng kích thước của phần tử và bổ sung cơ số của mảng trong bộ nhớ. Cả hai hoạt động thường được thực hiện trong không gian của một hướng dẫn duy nhất trong phần cứng bằng cách sử dụng một chế độ địa chỉ thích hợp.

3

bên dưới ... nó một địa chỉ bộ nhớ + (index postion * kích thước của những điều trong mảng)

0

Hãy thử điều này,

1. Arrays are consecutive memory locations which are stored in Heap, as Arrays areobjects in java.

2. Assume i have an Array of String as an instance variable

String [] arr = {1,2,3,4,5};

Bây giờ nó như thế này

arr [0] = 1

arr [1] = 2

arr [2] = 3

arr [3] = 4

arr [4] = 5

{1,2,3,4,5} are stored over the heap, and Considering array "arr" as instancevariable, will lives within the object on the heap.

Nowarr sẽ giữ địa chỉ của phần tử đầu tiên của Mảng là 1. "arr" là biến mảng tham chiếu đối tượng, sẽ nằm bên trong đối tượng và {1,2,3,4,5} bên ngoài một nơi nào đó trên heap.

0

Phần tử mảng được lưu trữ trong khối liên tiếp, nếu chúng phát triển chúng cần được di chuyển đến địa điểm mới. Các phần tử này sau đó được truy cập bằng cách sử dụng một bù đắp từ nơi mảng bắt đầu.

Trong C bạn có thể truy cập vào các yếu tố của chỉ số i trong một mảng gọi một sử dụng hai phương pháp khác nhau:

  • int arrayElement = a[i];
  • int arrayElement = (int)(a + i * sizeof(int));

này là nhiều hơn hoặc ít hơn làm thế nào nó được thực hiện trong Java dưới mui xe.

Các vấn đề liên quan