重学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更高效。

浙公网安备 33010602011771号