#include <iostream>
//测试动态数组和静态数组
using namespace std;
/*
动态数组到数据是保存到堆中到,数组名只是一个指针
静态数组的数据是分配在栈中到,数组名是第一个数组到地址,
区别 动态 静态
数据分配位置 堆 栈
效率 慢 快
使用sizeof 固定(指针长度) 不固定(数据长度)
内存释放 手动(delete) 自动(和局部变量类似)
*/
int* f();
int* f1();
int main(void)
{
int* p= new int;
*p=10;
cout<<"值为"<<*p<<" 地址:"<<p<<endl;
//初始化一个动态数组
int* arr=new int[10];
arr[0]=100;
//指针也是指向数组的第一个数据
cout<<*arr<<"地址"<<arr<<endl;
//间接delete,所以尽量避免多个指针指向一个堆数据
int* q=p;
delete p;
//delete q;//错误: 连续delete2次报错
//elete数组到方法
delete [] arr;
//初始化一个静态数组
int arr2[]= {1,2,3 };
//de
c++静态数组和动态数组
最新推荐文章于 2024-04-29 18:15:52 发布