你會分配30變數

2021-06-22 20:01:44 字數 1654 閱讀 6046

在之前的教訓,你知道你可以用結構聚合許多不同資料型別到乙個變數中。然而,結構並不是唯一的聚合資料型別。陣列是乙個集合的資料型別,允許您訪問多個變數通過乙個名字乙個索引的使用。在c++中,所有這些變數必須具有相同的型別。

考慮一下這種情況:您想記錄30名學生的考試成績。這樣做,你會分配30變數!

1

2

3

4

5

intntestscorestudent1;

intntestscorestudent2;

intntestscorestudent3;

// ...

intntestscorestudent30;

陣列給我們乙個更容易的方法:

1

intantestscores[30];// allocate 30 integers

在上面的例子中,我們宣告乙個陣列antestscores命名。陣列定義中使用時,下標運算子()是用來告訴編譯器有多少變數分配。在這種情況下,我們分配30整數。這些變數稱為乙個陣列元素。

訪問我們的每個30整數陣列元素,我們使用與乙個整數引數稱為索引下標運算子,我們想要告訴編譯器哪個變數。陣列的第乙個元素叫antestscores[0]。第二個是antestscores[1]。第十是antestscores[9]。注意,在c++中,陣列總是計數從零!這意味著乙個陣列大小n的陣列元素通過n - 1 0。這是尷尬的新程式設計師用來計數(從1開始)。

注意,下標操作符實際上有兩個用途:下標變數宣告,告訴有多少元素分配。當使用陣列,陣列元素的下標告訴訪問。

1

2

intanarray[5];// allocate 5 integers

anarray[0] = 7;// put the value 7 in element 0

讓我們看看乙個簡單的程式,它使用陣列:

1

2

3

4

5

6

7

intanarray[3];// allocate 3 integers

anarray[0] = 2;

anarray[1] = 3;

anarray[2] = 4;

intnsum = anarray[0] + anarray[1] + anarray[2];

cout <<"the sum is "<< nsum << endl;

變數記憶體分配

預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中...

變數記憶體分配

變數記憶體分配 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注...

變數的記憶體分配

1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指 令集中,效率很高,但是分配...