在C ++中练习关于数组的问题

数组是一种将数据存储在传染性内存位置的数据结构。

声明数组

Declaring arrays is done by the following syntax :
int 1D[] - for 1-D array
int 2D[][] - for 2-D array

如果使用较少数量的元素初始化数组,则其余部分将初始化为0。

数组元素的内存地址

1-D array : address[i] = baseAddress + i*size
2-D array (row major) : address[i][j] = baseAddress + (i*n + j) * size

现在,让我们看一些练习问题

预测以下代码段的输出

int arr[5] = {6, 9};
for(int i = 0; i<5; i++)
   cout<<arr[i]<<" ";

输出结果

6 9 0 0 0

该数组用两个值初始化,其余值初始化为0,这反映在输出中。

int arr[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
cout<<arr[1][2];

输出结果

6

查找整数数组给定元素的地址。如果基址是1420。

1D array : arr[43]
address = 1420 + 43*2 = 1506
2D array of size arr[10][10] : arr[5][4], stored as row major
address = 1420 + (5*10 + 4)*2 = 1420 + (54)*2 = 1528.