C++学习笔记 | 第二章 变量和基本类型 | (3)
来源:互联网 发布:淘宝秒杀不用刷新 编辑:程序博客网 时间:2024/06/06 20:36
从C++primer中文第五版2.3节 复合类型开始
1、复合类型是指基于其他类型定义的类型。引用和指针就是C++中的复合类型。
2、引用:为一个已经存在的对象所起的另外一个名字。
引用引用不是对象,它只能绑定在对象上;
引用时必须被初始化;
绑定后一直绑在一起;
一般,引用的类型和所绑定的对象类型相匹配。
定义的时候需要用&,但使用的时候不像指针一样要带*,引用使用的时候不需要带&号。
3、指针有别于引用的地方
指针本身是个对象,允许对指针进行赋值和拷贝;
指针生命周期内可以指向不同的对象;
指针定义时无须赋初值;
指针和其他内置类型一样,在块作用域内定义时如果没有被初始化,也将拥有一个不确定的值。
4、指针值
指向一个对象
指向紧邻对象所占空间的下一个位置。(常用在数组中)
空指针,即没有指向任何对象
无效指针,即上述三种情况以外的指针
5、对于上述指针的四个值,访问无效指针将会引发错误,但是编译器不负责检查此类错误;第二三种指针虽然是有效的,但是访问他们是不允许的,否则引发的后果无法预计。
6、如果指针指向了一个对象,则允许使用解引用符(操作符*)来访问该对象。给解引用的结果赋值,实际上是给指针所指的对象赋值。解引用操作仅适用于那些确实指向了某个对象的有效指针。
7、生成空指针的三种办法:
int *p = nullptr; //C++11新特性,推荐使用
int *p = 0;
int *p = NULL; //需#include cstdlib,尽量避免使用
8、建议初始化所有的指针,并且在可能的情况下,尽量等定义了对象之后再定义指向它的指针。
9、指针的操作
指针的改变还是变量的改变
条件运算中,0指针为false,非0指针为true
比较运算中...
注:指针的操作都需要是合法指针。
10、void* 是一种特殊类型的指针,可用于存放任意对象的地址。一个void* 指针存放着一个地址,我们对该地址中到底是什么类型的对象并不了解。
未完待续...
- C++学习笔记 | 第二章 变量和基本类型 | (3)
- C++Primer笔记 第二章 变量和基本类型
- C++Primer第二章(变量和基本类型)笔记
- c++ primer 学习笔记,第二章变量和基本类型
- C++学习笔记 | 第二章 变量和基本类型 | (1)
- C++学习笔记 | 第二章 变量和基本类型 | (2)
- C++学习笔记 | 第二章 变量和基本类型 | (4)
- C++学习笔记 | 第二章 变量和基本类型 | (5)
- c++ primer 学习笔记 第二章 变量和基本类型
- C++Primer学习笔记第二章(2/18) 变量和基本类型
- C++primer学习笔记(一):第二章.变量和基本类型
- C++ Primer复习和学习笔记 第二章 变量和基本类型
- 《C++ Primer》学习笔记 第二章 变量与基本类型
- 第二章 变量与基本类型 学习笔记
- 《C++Primer》 第二章 变量和基本类型
- C++Primer 4 第二章 变量和基本类型
- 第二章 变量和基本类型 《C++Primer》
- [C++Primer] 第二章 变量和基本类型
- 2015,新的一年,新的开始!
- struts2和servlet的共存问题
- libsvm安装(MATLAB)
- Xcode编辑器查看类、函数间关系的几个小功能
- 终于!连上数据库了!--php访问mysql数据库
- C++学习笔记 | 第二章 变量和基本类型 | (3)
- OJ刷题之《折半查找》
- RBS TUNNING
- 企业级Hadoop 2.x入门系列之六HDFS的Shell操作与管理
- GEngine
- newLISP C++编译示范工程cppwizard v1.2.0发布
- windows下memcached安装
- 海盗分金币
- OJ刷题之《蚂蚁感冒》