1. 程式人生 > >指標與變數(或陣列)的動態建立與釋放

指標與變數(或陣列)的動態建立與釋放

1、變數記憶體的動態分配(建立)與釋放:通過指標,動態間接賦值、取值

指標變數名=new 資料型別(初始值); 初始值可省略,後邊再賦值。

delete 指標變數名;

#include<iostream>
using namespace std;
int main() {
    //int *p = new int; *p = 5;
    int *p = new int(5);//new運算子,動態建立一個int型變數(無變數名),值為5。
    cout << *p;//輸出所指地址的值
    delete p;//釋放指標變數的記憶體空間
    return
0; }

2、一維陣列的動態分配(建立)與釋放:

指標變數名=new 資料型別[正整數常量、變數或表示式];

delete [ ]指標變數名;

#include<iostream>
using namespace std;
int main() {
    int *p = new int[5];//new運算子,動態建立一個int型陣列(無陣列名)。
    *(p + 1) = 10;//賦值第2個元素
    //或p[1]=10;
    cout << p[1];//輸出所指地址的值
    delete []p;//釋放指標變數陣列的記憶體空間
    return
0; }

顯示Fibonacci數列的前N項,0,1,1,2,3,5,8,…

#include<iostream>
using namespace std;
int main() {
    int N;
    cin >> N;

    int *p = new int[N]; //動態建立包含N個元素的陣列
    p[0] = 0; p[1] = 1;//給定第1、2元素的值,等效*p=0;*(p+1)=1;
    for (int i = 2; i < N; i++){
        p[i] = p[i - 1] + p[i - 2];
    }
    
for (int i = 0; i < N; i++) { cout << p[i] << " "; } delete []p;//釋放指標變數陣列的記憶體空間 return 0; }