当前位置: 首页 > wzjs >正文

那个网站做直播好快速学电脑培训班

那个网站做直播好,快速学电脑培训班,一个主机怎么做两个网站,网站建设需要服务器支持 吗上次堆区的介绍中,我们提到了一个关键字new,那今天我们就详细讲讲它 今天我们主要将两个内容 1.new的基本语法 2.用new创建数组 1.new的基本语法 new,可以在堆区中创建空间,来存放数据,就比如像下面这样 int* p new int(29);//n…

        上次堆区的介绍中,我们提到了一个关键字new,那今天我们就详细讲讲它

        今天我们主要将两个内容

        1.new的基本语法

        2.用new创建数组

1.new的基本语法

        new,可以在堆区中创建空间,来存放数据,就比如像下面这样

int* p = new int(29);//new会返回空间的地址,所以要用相同类型的指针变量接收

        基本上用new创建变量的格式:指针类型+指针变量名=new+变量类型+(赋值) 

        那我们已经知道了怎么创建,现在我们再来讲讲释放就像fopen打开的文件要用,fcolse来关闭,malloc,calloc,realloc动态分配的空间,要用free来释放一样,new在堆区中创建的空间也需要delete来删除(释放)

delete p;//释放new在堆区创建的变量

        我们可以先用new来创建空间,在释放的前后打印看一下,会有什么效果:

#include<iostream>
using namespace std;
//new的基本语法
int* asd()
{//在堆区开辟空间int* p = new int(29);//new会返回空间的地址,所以要用相同类型的指针变量接收return p;
}void fff()
{int* p = asd();cout << *p << endl;cout << *p << endl;cout << *p << endl;cout << *p << endl;delete p;//释放new在堆区创建的变量//cout << *p << endl;}int main()
{fff();return 0;
}

        在释放前:

 

                我们可以看到,很成功的打印出来了并没有乱码出现 ,那接下来我们在看看释放后的打印结果:

        我们可以看到,释放前的打印完了之后,就无法打印了,并出现了访问权限冲突的问题,这证明了new所创建的空间成功被释放了。

2.用new创建数组

        而用new创建一个数组,其实也是异曲同工之妙,只不过细节上有点区别

    int* arr = new int[10];//注意:与创建单个变量不同,它赋值时使用的并不是小括号,而是中括号 

        用new创建一个数组的基本公式可以概括为: 指针类型+指针数组名=new+变量类型+[元素个数]

        注意:与创建单个变量不同,它赋值时使用的并不是小括号,而是中括号 

        那么释放呢?

    delete[] arr;//new在堆区中创建的数组与变量释放的格式是不一样的,数组比变量要多一个中括号。

        这里呢,它多了一个中括号,表示它是在释放一个数组。 

        接下来,我们在上面的代码的基础上,创建一个数组,同样在释放前后打印,看看结果是不是一样的。

#include<iostream>
using namespace std;
//new的基本语法
int* asd()
{//在堆区开辟空间int* p = new int(29);//new会返回空间的地址,所以要用相同类型的指针变量接收return p;
}void fff()
{int* p = asd();cout << *p << endl;cout << *p << endl;cout << *p << endl;cout << *p << endl;delete p;//释放new在堆区创建的变量//cout << *p << endl;}//运用new在堆区创建数组void fds()
{int* arr = new int[10];//注意与创建单个变量不同,它赋值时使用的并不是小括号,而是中括号//为数组赋值for (int i = 0; i < 10; i++){arr[i] = i + 100;//将arr当作数组名加个中括号就可以了,正常结果就是100-109了}//我们来看看赋值是否成功呢?for (int j = 0; j < 10; j++){cout << arr[j] << endl;}delete[] arr;//new在堆区中创建的数组与变量释放的格式是不一样的,数组比变量要多一个中括号。/*for (int j = 0; j < 10; j++){cout << arr[j] << endl;}*/
}int main()
{fff();fds();return 0;
}

        释放前:

        释放后:

 

        同样的话我就不再这里水字数了 ,希望大家有所收获


http://www.dtcms.com/wzjs/197936.html

相关文章:

  • html怎么设置网站吗无锡百度seo优化
  • dede网站建设友情链接是什么意思
  • 做网站用框架么微营销平台有哪些
  • ink域名网站域名查询网站信息
  • 香港网站空间价格网站建设营销型
  • 做教育业网站网络软文
  • 网站建设免征增值税吗口碑营销的概念
  • WordPress出现508北京外包seo公司
  • 备案网站名称与实际网站名称不一致杭州网站建设技术支持
  • 广州公司注册公司流程seo站长工具查询系统
  • wordpress做一个视频网站吗宁波网络营销公司有哪些
  • 做公司网站需要学哪些百度快照优化公司
  • 微信小程序营销推广win10系统优化工具
  • 企业网站建设标准怎么注册一个自己的网址
  • 招聘网站可以做两份简历吗东莞seo
  • 经营网站备案信息管理系统金昌网站seo
  • 中文网页搜索seo优化
  • 做网站建设的上市公司有哪些应用商店aso优化
  • 源码网站模板seo工作内容和薪资
  • 石家庄网站排名推广怎么做网络营销推广啊
  • 用视频做网站背景东莞网站建设推广技巧
  • 成都学生做网站如何开发网站
  • 建设银行etc官方网站站长工具ping
  • 哥哥做姐姐干网站深圳网络优化推广公司
  • 移动互联网公司seo管理平台
  • 做货源的网站天津企业seo
  • 可以做兼职的网站有哪些工作微信公众号运营推广方案
  • jimdo做的网站广州企业网站seo
  • 奥林匹克做校服的网站产品推广文案范例
  • 企业网站建设新站深圳seo排名哪家好