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风格)

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

  string类常用操作:

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

 

 

 

 

 

转载于:https://www.cnblogs.com/lemon333333/p/10238883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值