c到c++(二)

87 阅读3分钟

一:new:申请 ,delete : 释放 new的使用: 举个例子:向系统申请一块int类型大小的内存:new int : //其实我们这里并没有真正得到这块内存,只是进行了申请操作,如果你有资格才可以拥有这片内存, //我们可以用一个指针来保存这片内存,这个指针就相当于资格 intp = new int; new有两种用法:一:用来申请单个的内存 语法:申请的内存的类型指针名 = new 申请的内存的类型 申请单个内存的同时进行初始化:申请的内存的类型指针名 = new 申请的内存的类型(初始化) :intp = 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是一样的