• C++知识点(六)数组、指针与字符串导学


    1.数组

    • 地址连续存放
    • 初始化:
      • 列出全部初始值后,第1维下标个数可以省略
      • 不做初始化,局部变量中为垃圾数据,static变量为0
      • 只对一部分进行初始化,其余数值初始化为0

    2.动态内存分配:

    • new 
    • delete 

    3.动态创建数组

      new p[N]; delele[] p; 

      构造函数和析构函数会被调用N次

    4.动态创建多维数组

      new p[M][N] ;p为指向行的指针

    5.动态数组封装成类

      检查下标越界

    6.智能指针:垃圾回收机制,

      unique_ptr:不允许多个指针共享资源,可用move()转移指针

      shared_ptr:多个指针共享资源

      weak_ptr:可复制shared_ptr,构造和释放对资源不产生影响

    7.vector对象:类模板(数组) 类似动态数组系统封装成类

      作用:封装任何类型的动态数组,自动创建和删除;  数组下标越界检查

      定义:vector<类型> 对象名(长度)

      使用:对象名[下标];对象名.size();

    8.对象的浅层复制和深层复制(复制构造函数)

      浅层复制的问题:当原含有指针的对象复制到新对象时,只复制指针地址,若析构原对象,会把新对象同时析构掉。此时需要深层复制

    9.移动构造

      将源对象的状态转移到目标对象上,

     

      使用场景:返回含有指针成员的对象,

      定义:类名(类名&& 对象)

    10.字符串常量:string类(C++)和字符数组(C风格)

      连续顺序存放,以‘’结尾

      string类常用操作:

    getline(cin,str,','); 输入整行字符,第三个参数是字符串结束的标志分隔符

     

  • 相关阅读:
    [Postman]历史(8)
    [Postman]响应(7)
    [Postman]请求(6)
    [Postman]查找替换(5)
    ORA-02050故障诊断一例
    转 js实践篇:例外处理Try{}catch(e){}
    转 PHP
    HTML DOM getElementById() 方法
    地点选择
    9i 和 11 g 区别
  • 原文地址:https://www.cnblogs.com/lemon333333/p/10238883.html
Copyright © 2020-2023  润新知