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