1. 程式人生 > >指針與變量(或數組)的動態創建與釋放

指針與變量(或數組)的動態創建與釋放

變量 i++ 動態 nbsp 數據 數據類型 2個 內存 fibonacci

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; }

指針與變量(或數組)的動態創建與釋放