栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++动态内存

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++动态内存

c++动态内存管理与类型推导 1.new的使用 运算符new

一个关键字有四个动作,1计算类型的大小2调用malloc3初始化4把地址传回给指针

对应的,在使用完这个空间后要释放,用delete,而要是申请一组空间则应该用delete []p,

开辟指针空间

p=new int *[10]{NULL}
函数调用new(operator new),不能初始化
int *s=(int *)::operator new(sizeof(int)*10,nothrow) 

和malloc一样,要自己设置返回值类型,自己算sizeof()。

定位new(存在的意义:c++中有着只有空间没有对象的,如果后来再想给这块地址赋值则需要定位new)

为已经开辟好的空间初始化

char buff[10]={0};

new(buff)int (10);

2.类型推导auto与decltype

auto(类型指示符) 可以由编译器自行推导数据类型,但是auto定义变量时必须给初始值

auto结合const

const int a=10;

auto &y=a;//y const int &

auto还可以作为函数的形参(c11新特性),auto引用和指针获取实参的值和值类型,

auto不能推演数组,因为如果能推演数组则也能推演结构体,然而不能做到。

decltype

decltype 的语法格式 decltype (exp),可以推导exp的类型(可以是表达式或是函数的值),但是不会对exp进行计算。

3.基于范围的for(需要迭代器,容器自身就有迭代器)

void printf(auto &x)

{

for(const auto & val:x)

{

cout <

}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/916896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号