原**:
1.變長一維陣列
這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做:
1: //檔名: array01.cpp
2: #include
3: using namespace std;
4: int main()
5:
注意int *p=new int[len];這一句,你不能這樣做:
int p[len];
c++編譯器會報錯說len的大小不能確定,因為用這種形式宣告陣列,陣列的大小需要在編譯時確定。而且這樣也不行:
int p=new int[len];
編譯器會說不能把int*型轉化為int型,因為用new開闢了一段記憶體空間後會返回這段記憶體的首位址,所以要把這個位址賦給乙個指標,所以要用int *p=new int[len];
array01.cpp實現了乙個變長的一維陣列,但是要養成乙個好習慣,就是注意要登出指標p,使程式釋放用new開闢的記憶體空間。
當然使用c++標準模版庫(stl)中的vector(向量)也可以實現變長陣列:
1: //檔名: array02.cpp
2: #include
3: #include
4: using namespace std;
5: int main()
6:
29: cout<30: }
31: return 0;
32: }
執行結果:
input value for m,n,l:2 3 4
0: 00492fe0 1: 00492fe4 2: 00492fe8 3: 00492fec
1: 00492fa0 2: 00492fa4 3: 00492fa8 4: 00492fac
2: 00492f60 3: 00492f64 4: 00492f68 5: 00492f6c
1: 00492ec0 2: 00492ec4 3: 00492ec8 4: 00492ecc
2: 00492e80 3: 00492e84 4: 00492e88 5: 00492e8c
3: 00492e40 4: 00492e44 5: 00492e48 6: 00492e4c
c 動態陣列
在建立動態陣列的過程中我們要遵循乙個原則,那就是在建立的時候從外層往裡層,逐層建立 而釋放的時候從裡層往外層,逐層釋放。這個話你讀了可能理解並不深刻,不過不要急,接下來我們看看兩段 一維動態陣列的建立 include include int main int n1,i int array print...
c 動態陣列
這學期學c 晚上有道程式設計題,比較坑,感覺要用動態陣列做,但實際就是要用靜態陣列,因為動態的反而更難了。用動態陣列的時候,發現自己只會建立一維的 int a new int 5 然後二維陣列怎麼創都忘記了,還是那句話 不寫 很容易 忘記。然後下面就給出幾個例子吧 cpp view plain co...
c 動態陣列
首先 為什麼需要動態定義陣列呢?這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出 但是問題是,c 要求定義陣列時,必須明確給定陣列的大小,要不然編譯通不過 如 int array 5 正確 int i 5 int array i 錯誤 因為在編譯階段,編...