目录
一:new:申请 ,delete : 释放
一: new的使用:
举个例子:向系统申请一块int类型大小的内存:new int :
//其实我们这里并没有真正得到这块内存,只是进行了申请操作,如果你有资格才可以拥有这片内存,
//我们可以用一个指针来保存这片内存,这个指针就相当于资格
int*p = new int;
new有两种用法:
一:用来申请单个的内存
语法:申请的内存的类型*指针名 = new 申请的内存的类型
申请单个内存的同时进行初始化:申请的内存的类型*指针名 = new 申请的内存的类型(初始化)
:int*p = new int(10);//初始化的内容要和申请的内存相匹配
二:用来申请连续的空间:new int[15];//申请连续15个int类型变量的空间,单位取决于申请的变量的类型
使用指针来保存这段申请的内存的地址;
int*p = new int[15];
int*p3 = new int[5];
*(p3 = 0) = 0;
*(p3 + 1) = 1;
*(p + n) <= = > p[n];
p3[2] = 2;
****不能边申请连续的内存空间边对他们进行初始化,需要分开进行;
二:delete有两种释放内存的方法:
1:释放单个内存
2:释放连续的内存空间
单个;delete 指针名
指针名 = 空
连续:delete[]指针名
指针名 = 空
连续的内存释放一定要加上[],如果不加的话,那么就只会释放这段内存中的第一个元素的内存
那么剩下的内存就再也访问不到了,所以一定要加上[]
* ****申请了内存就要释放
//指针一定要赋值否则系统就会自动给赋值了,输出ABBB之类的
三: 命名空间;
放代码的地方,防止重名
为什么需要他:因为当我们书写很长的代码的时候,或者小组一个开发一个功能的时候,很容易
出现重名的情况;
语法:namespace 命名空间标识符//name名字space空间,合起来就是命名空间
{
命名空间成员;
}
命名空间标识符:以一个项目为例子,这个项目的名字可能是公司名加上项目名字再加上团队的
名字来命名,这样的话命名空间标识符就很小可能会重复,如果它不重复,命名空间的成员就更
不可能重复了
需要注意的是:一:不能在函数和类内进行定义
二:作用域不需要加分号,定义域需要加分号
三;命名污染:就是命名空间标识符相同就会发生命名污染
四:访问:在前面要加上 using namespace 命名空间标识符:
四: 作用域符号::
前面::后面//前面的后面
可以理解为:张三::对象//张三的对象
如果你不加一个作用域符号,怎么知道是谁的对象
命名取别名:namespace name-21111=ine//name-211111和ine是一样的