靜態陣列:c語言中陣列的長度是固定的,也稱為靜態陣列,而這種限制不甚合理。
動態陣列:c++中陣列有時候不用在編譯時就知道長度,直到執行時才知道,這就是動態陣列,也就是可以動態分配長度的陣列。與靜態陣列變數區別是,動態分配的陣列空間將一直存在,直到程式顯式的釋放它為止。
定義乙個動態陣列:
int *p=new int[100];
p就是乙個動態陣列,其實動態陣列就是乙個指標,使用
new為
p分配長度。
也可以通過這種方式初始化:
int *p=new int[100]();
上面的語句等同於下面的語句:
int n=100;
int *p=new int[n];因為n
是乙個變數,所以陣列的長度是動態的。
應用例項:
int n=100;
int *p=new int[n];
p可以使用陣列下標為其賦值:
for(int i=0;i
上面這種方式沒有問題,但我想既然
p是乙個指標,那麼使用指標操作一樣也可以吧?
for(int i=0;i
這樣就可以了,將他們輸出:(這時指標
p又指向了最後)
p--;
for(int *p2=p-n;p2!=p;p--)
{cout<<*p<
動態空間釋放例項:
重要的是不要忘記將動態創造的空間釋放掉,語句是:
delete p;
『[ ]』表明該指標是指向的自由儲存區的陣列,而非單個物件。如果忘記了號,將導致程式在執行時出錯。
下面是完整**:
#include
using
namespace
std;
intmain(
void){
intn=200;
int*p=
newint
[n];
for(
inti=0;i
for(
int*p0=p-n;p0!=p;p--)
{cout<<*p<
例項講解易語言陣列排序
易語言陣列排序,就是將陣列排序,這個針對的是數值型陣列,我教大家操作。1 開啟易語言新建乙個wi程式設計客棧ndows程式進入下圖介面 2 我們點選進入 編輯區 3 這個函式針對www.cppcns.com陣列 所以要先定義乙個陣列 4 我們給陣列賦值 我們輸入 a www.cppcns.com1 ...
C 動態陣列例項
一維動態陣列的例項 1 include 2 using namespace std 3int main 415 cout輸出乙個空行 16for int i 1 i n i 1720 delete arr 動態空間釋放 21 二維動態陣列的例項 1 include 2 using namespace...
C 訪問C 動態分配的陣列指標 例項講解
專案中遇到c 呼叫c 演算法庫的情況,c 內部運算結果返回矩形座標陣列 事先長度未知且不可預計 下面方法適用於訪問c 內部分配的任何結構體型別陣列。當時想當然的用ref array傳遞引數,能計算能分配,但是在c 裡只得到arr長度是1,無法訪問後續陣列item。c 介面示例 void call i...