陣列和列舉 陣列 二維陣列 指標

2021-09-26 14:58:41 字數 1252 閱讀 1071

1.列舉和陣列可以結合:

enum studentnames;

int main()

可以使用列舉型別中的**名稱來表示序號索引。

注:不能將max_students直接寫成studentnames::max_students,因為如果這樣表述,studentnames必須要是乙個命名空間才可以。可以對列舉型別做如下的改變:

namespace studentnames;

int m

}這樣就可以了。

2.陣列:

在用陣列作為函式傳參的時候,如果不希望陣列被修改,可以使用關鍵字const,如下:

void passarray(const int prime[5]){}

算陣列大小時(有幾個元素):sizeof(array) / sizeof(array[0])

陣列物理記憶體大小:sizeof(array)

3.二維陣列

初始化二維陣列:最簡單的方法就是,把每一行都加乙個大括號框起來,如下:

int array[3][5] =, // row 0

, // row 1

// row 2

};另乙個初始化方式:行(第乙個數)可以省略。

4.一些關於指標的問題:

指標的釋放:把指標delete之後,要將指標置空,比如:

delete p;

p=null;

空指標:空指標是指標變數指向的位址是0,而不是指向的內容是0,不也是指沒有初始化的指標。空指標的定義如下:int *p;p=0;

空指標還可以代表布林值,空指標會表示false,非空指標會表示true。

指標和陣列有很多相似的地方。比如,對於陣列a,指向它的指標p=a,和&a[0],如果設定二者輸出,這二者是一樣的。陣列的首位址,就是陣列第乙個元素的位址。

但是二者之間也是有差異的。在使用sizeof函式的時候,sizeof(a)表示的是整個陣列的大小,即:元素個數*每個元素的大小;而sizeof§表示的只是指向的實體地址的大小,這個大小相當於乙個元素的樣子。

指標的算術:對於:int *p;來說,p被賦予位址,因此p+1,p+2也必然是位址,只不過這個位址並不是單純的位址上的加一加二,而是表示的是int 的大小乘以1或者2。p+1的大小和指標p所指向的型別有關。

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

二維陣列和指標陣列

實驗 如下 include stdio.h int main char b pirntf s n s n a 0 b 0 return 0 列印的結果 a123 b123 實際列印結果 a123a456a789 b123 這是在定義二維陣列a 3 4 時,每行留的空間不夠導致的 二維陣列每行分別為 ...

二維陣列和指標 和指標陣列,陣列指標

2007 09 12 19 45 7842人閱讀收藏 舉報 二維陣列和指標 用指標表示二維陣列元素。要用指標處理二維陣列,首先要解決從儲存的角度對二維陣列的認識問題。我們知道,乙個二維陣列在計算機中儲存時,是按照先行後列的順序依次儲存的,當把每一行看作乙個整體,即視為乙個大的陣列元素時,這個儲存的二...