陣列和指標的關係(區別)詳解

2020-07-16 10:04:42
我們知道,沒有方括號和下標的陣列名稱實際上代表陣列的起始地址。這意味著陣列名稱實際上就是一個指標。下面程式通過顯示與間接運算子一起使用的陣列名稱來說明這一點。
// This program shows an array name being dereferenced with the * operator.
#include <iostream>
using namespace std;

int main()
{
    short numbers[] = {10, 20, 30, 40, 50};
    cout << "The first element of the array is ";
    cout << *numbers << endl;
    return 0;
}
程式輸出結果:

The first element of the array is 10

numbers 在上面程式中的作用類似於指向陣列起始地址的指標,所以當 numbers 被解除參照時,第一個元素被檢索出來。那麼,如何使用間接運算子來檢索陣列的全部內容呢?請記住,陣列元素是一起儲存在記憶體中的,如圖 1 所示。


圖 1 儲存在記憶體中的陣列元素