陣列就是一大串變數的集合,我們如果要存放很多資料,我們就可以使用陣例

宣告一個陣例的格式很簡單,就是在變數後面加上中括號與需要數量。

例如:

    int i[5];

就是宣告了一個可以存放 5 個整數的陣列。由於是從零開始,所以我們可用的索引是 0,1,2,3,4 ,宣告之後我們就可以在陣列中存入整數了。
 
例如:

    int i[5];
    i[0]=30;
    i[1]=40;
    i[2]=90;
    i[3]=40;
    i[4]=90;
 
我們也可用{a,b,c}的方式,在宣告時直接給值,如

    int i[5]={30,40,50,60,70};

陣例本身不難懂,比較難的是,陣列本身是什麼,比如說以下的 Code

    int i[5]={30,40,50,60,70};
    NSLog(@"Array is i=%x",i);
 
結果它輸出了類似 【Array is i=5fbff800】其中 5fbff800 實際上是一個記憶體位址,也就是說,陣例的本身是一種指標變數,存放的是一個記憶位置,而實際的資料是存放在由該指標指向的記憶體內。  每個變數都有一個記體位置,我們可以在變數前加上【&】來取得記憶體位置

而這下面這個例子:

        int i[5]={30,40,50,60,70};
        NSLog(@"%x",i);
    
        NSLog(@"%x",&i[0]);
        NSLog(@"%x",&i[1]);
        NSLog(@"%x",&i[2]);
        NSLog(@"%x",&i[3]);
        NSLog(@"%x",&i[4]);
 
 
結果輸出了

5fbff800
5fbff800
5fbff804
5fbff808
5fbff80c
5fbff810

已就是說,實際上陣列是由內放的指標位置開始的一連串位置,本例中,因為使用 int 類型,所以不同索引之間相差了 int 所需要的 4 byte 的差距。
arrow
arrow

    shenfive 發表在 痞客邦 留言(0) 人氣()