1. 程式人生 > >Linux C----陣列與指標

Linux C----陣列與指標

1、陣列

陣列:陣列是一種複合資料型別,它由一系列形同型別的元素組成。

例:定義一個由5個int型元素組成的陣列 count:int count [5].

 注意:1、對於同一陣列,其元素的資料型別是相同的。

           2、陣列名書寫規則應符合識別符號書寫規則。

           3、陣列名不能同變數名形同。

          4、方括號中常量表達式表示陣列的個數,其下標值從0開始。

           5、允許在同一型別說明中,說明多個數組和多個變數。

1.1一維陣列

型別說明符 陣列名[常量表達式]={值,值,值};

例:int i[5]={1,2,3,4,5};

1.2二維陣列

資料型別 陣列名[陣列長度][陣列長度]

例:


1.3字元陣列

用來存放字元量的陣列稱為字元陣列。

例:

1.4多位陣列

多位陣列就像可以巢狀一樣,陣列也可以巢狀,一個數組的元素可以是另外一個數組,這樣就構成了多位陣列。多位陣列可分為整形陣列、浮點陣列、和字元陣列等。

#include<iostream>
using namespace std;
int main()
{
    int num[3][4][5]={{{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}},
                       {{21,22,23,24,25},{26,27,28,29,30},{31,32,33,34,35},{36,77,88,39,40}},
                       {{41,42,43,44,45},{46,47,48,49,50},{51,52,53,54,55},{56,57,58,59,60}}};
    int addr1=(int)num;
    int addr2=(int)(num+1);
    cout<<addr1<<endl<<addr2<<endl;
    return 0;
}

2、指標

     一個指標是一個地址,是一個常量。而一個指標變數卻可以被賦予不同的至真值,是變數。但常把指標變數簡稱尾指標。為了避免混淆,我們中約定:“指標”是指地址,是常量,“指標變數”是指取值為地址的變數。定義指標目的是為了通過指標去問記憶體單元。

對指標變數的定義包括三個內容:

1.指標型別說明,即定義變數為一個指標變數;

2.指標變數名;

3. 變數值(指標)所指向的變數的資料型別

指標的寫法:

型別說明符 *指標名=&變數名;

(其中型別說明符表示本指標變數所指向的變數的資料型別,*表示這是一個指標變數&表示取變數名對應的記憶體地址)


指標變數作為函式引數:

l函式的引數不僅可以是整型、實型、字元型等資料,還可以是指標型別。它的作用是
將一個變數的地址傳送到另一個函式中。

指標與陣列

1)一個變數有一個地址,一個數組包含若干元素,每個陣列元素都在記憶體中佔用儲存單元,它們都有相應的地址。所謂陣列的指標是指陣列的起始地址陣列元素的指標是陣列元素的地址2)一個數組是由連續的一塊記憶體單元組成的。陣列名就是這塊連續記憶體單元的首地址。一個陣列也是由各個陣列元素(下標變數)組成的。每個陣列元素按其型別不同佔有幾個連續的記憶體單元。一個數組元素的首地址也是指它所佔有的幾個記憶體單元的首地址3)指標變數可以實現本身的值的改變。如p++是合法的,代表下一個陣列元素的地址;a++是錯誤的。因為a是陣列名,它是陣列的首地址,是常量。

指向指標的指標:

l指標可以指向基本型別,也可以指向複合型別,因此也可以指向另外一個指標變數,稱為指向指標的指標。

指標變數作為函式引數

指標變數作為函式引數

指標變數作為函式引數