重学C++(一)

总结

一、指针&引用

1、左值:编译器单独分配了一块存储空间,可以取其地址的,左值是可以放在赋值运算符左边;

  右值:指的是数据本身,不能去到其自身地址,右值只能赋值运算右边。

2、const 修饰的部分:看左边最近的部分,如果没有看右侧

3、野指针:指针变量没有初始化;已经释放的指针没有置nullptr;指针超出了作用范围

4、CPP程序存储区域划分

5、资源管理方案RAII:智能指针(auto_ptr在C++17中移除:防止循环引用情况)

下面贴一段auto_ptr的基本使用代码:

 

//头文件
#include<memory>
....
int main() {
    {
    auto_ptr<int> pl(new int(10));
    cout<<*pl<<endl;
     };   
}

 

 6、引用(一种特殊的指针,不允许修改的指针):引用为了支持函数运算符重载,指针为了兼容c;对于内置基础类型在函数中传递时pass by value更高效,对面向对象中自定义类型而言,在函数传递时pass by reference to const更高效。

 

posted @ 2021-09-27 15:49  学学学学学ll  阅读(45)  评论(0)    收藏  举报