一、新建一個動態數組?
?數組名和下標操作符[]的組合可以被替換成一個指向該數組的基地址的指針和對應的指針運算:
int a[20];
int *x = a;
指針變量 x 指向數組 a 的地址, a[0] 和 *x 都代表數組的第一個元素。
于是,根據指針運算原則, a[1] 等價于 *(x+1)、 a[2] 等價于 *(x+2) ,以此類推。
反過來也成立,
- 把一個數組聲明傳遞給 new 語句將使它返回一個該數組基類型的指針。
- 把數組下標操作符和該指針變量的名字搭配使用就可以像對待一個數組那樣使用 new 語句為這個數組分配的內存塊了。
例如:
int *x = new int[10];
? 可以像對待一個數組那樣使用指針變量 x :
- ?x[1] = 45;
- ?x[2] = 8;
? 當然,也可以用一個變量來保存該數組的元素個數:
- ?int count = 10;
- int *x = new int[count];??
案例:
寫一個程序,能夠在程序運行時讓用戶輸入一個值自行定義數組的長度。
#include<iostream>
#include<string>int main()
{unsigned int count=0;std::cout<<"請輸入數組的元素個數:\n";std::cin>>count;int *x=new int[count];for(int i=0;i<count;i++){x[i]=i;}for(int i=0;i<count;i++){std::cout<<"x["<<i<<"]的值是:"<<x[i]<<"\n"; }return 0;
}
?
二、 刪除一個動態數組?
在 delete 保留字的后面加上一對方括號:
delete [] x;
未完待續。。。