new创建动态内存

    int *q = new int;
    *q = 3;
    cout << *q << endl;
    delete q;

    int* q = new int(3);    //两种方式new
    cout << *q << endl;
    delete q;

    int* arr = new int[3];    //作为局部变量(栈区)的数组arr接受new出来堆区数据的首地址
    for (int i = 0; i < 3; i++)
    {
        cin >> arr[i];
    }
    for (int i = 0; i < 3; i++)
    {
        cout << *(arr + i);
    }
new 数据类型,返回的是变量的地址

int a = new int(10);    // ()整型 
delete a;        //释放变量a

int *arr = new int[10];    // []数组
delete[] a;    //释放数组a

//释放记得delete

int *p = new int(10);    //将堆区创建的变量的地址赋值给存放在栈区的局部变量指针p。
//其中指针p属于局部变量,存放在栈区;new创建的整型变量10,存放在堆区。
//new创建的是堆区空间,返回值是该空间的首地址,因此一般传入指针接收new的返回值。

 

posted @ 2022-10-23 11:23  _玄  阅读(37)  评论(0)    收藏  举报