![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
--------【基本语法】
文章平均质量分 65
liuyanfeier
acmer
展开
-
指针和引用的区别
1.指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元; 引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。int a=1;int *p=&a; //定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。 int a=1;int &b=a; //定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西原创 2016-10-16 13:13:27 · 204 阅读 · 0 评论 -
各种C++关键字的作用
一. static static关键字至少有下列5个作用: (1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)限制函数的作用域,在模块内的sta原创 2016-10-16 13:18:08 · 1598 阅读 · 0 评论 -
C++智能指针简单剖析
智能指针是一个类,这个类的构造函数中传入一个普通指针,析构函数中释放传入的指针。智能指针的类都是栈上的对象,所以当函数(或程序)结束时会自动被释放。 1. 智能指针背后的设计思想 auto_ptr、unique_ptr和shared_ptr这几个智能指针背后的设计思想。我简单的总结下就是:将基本类型指针封装为类对象指针(这个类肯定是个模板,以适应不同基本类型的需求),并在析构函数里编写dele原创 2016-10-16 13:22:49 · 545 阅读 · 0 评论 -
类的大小——sizeof 的研究
先看一个空的类占多少空间? class Base { public: Base(); ~Base(); }; 注意到我这里显示声明了构造跟析构,但是sizeof(Base)的结果是1.不申明或者是用struct也是一样的,结果为1.因为一个空类也要实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一原创 2016-10-16 13:27:34 · 331 阅读 · 0 评论 -
野指针
野指针 野指针不是空指针,是一个指向垃圾内存的指针。 形成原因: 1.指针变量没有被初始化。 任何指针变量被刚创建时不会被自动初始化为NULL指针,它的缺省值是随机的。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如: char* p = NULL; char* str = (char*)malloc(102原创 2016-10-16 13:29:42 · 260 阅读 · 0 评论 -
C++11新特性
什么是C++11 C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto、decltype,和模板的大量改进。1.auto C++11中引入auto第一种作用是为了自动类型推导 auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以大大简化我们的编程工作 auto实际上实在编译时对变量进行了类型推导,所以不会对程序的运行效率造成原创 2016-10-16 13:34:44 · 295 阅读 · 0 评论 -
拷贝构造函数
一.定义: 就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。 自定义拷贝构造函数:1. //拷贝构造函数 2. CExample(const CExample& C) 3. { 4. a = C.a; 5. } CExample(const CExample& C) 就是我们自定义的拷贝构造函数。可见,拷贝构造函数原创 2016-10-16 13:44:59 · 308 阅读 · 0 评论