c++primer笔记--2.3复合类型

1 复合类型是指基于其它类型定义的类型。引用和指针是复合类型
2 引用为对象起了另外一个名字。
3 引用必须初始化。一旦初始化完成,引用将和它的初始值对象一直绑定在一起,无法令引用重新绑定到另外一个对象。
4 引用即别名,引用并非对象,相反的,它只是为一个已经存在的对象所起的另一个名字
5 引用本身不是对象,所以不能定义引用的引用。
6 引用的类型要和与之绑定对象严格匹配,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。
7 指针是指向另外一种类型的复合类型。
8 指针与引用的不同:
    a 指针本身就是一个对象,允许对指针赋值和拷贝
    b 指针无须在定义时赋初值
9 指针存放的是某个对象的地址,(& 取地址操作符)
10 因为引用不是对象,没有实际地址,所以不能定义指向引用的指针。
11 指针的类型要和它所指向的对象严格匹配。
12 指针的值(即地址)应属于下列4种状态之一:
    a 指向一个对象
    b 指向紧邻对象所占空间的下一个位置
    c 空指针,意味着指针没有指向任何对象
    d 无效指针
13 试图拷贝或以其它方式访问无效指针的值都将引发错误。编译器不负责检查此类错误。所以程序员必须确保任意给定的指针是有效的。
14 空指针不指向任何对象,得到空指针的两种办法:
    a int *p = nullptr;
    b int *p = 0;
15 预处理变量NULL的值就是0;在新标准下最好使用nullptr,尽量避免使用NULL
16 建议:初始化所有指针
17 任何非0指针对应的条件值都是true
18 void*是一种特殊的指针类型,可以存放任意对象的地址。
19 以void*视角来看内存空间也就仅仅是内存空间,没办法访问内存空间中所存的对象
20 指针是内存中的对象,有自己的地址,因此可以把指针的地址再存放到另一个指针中
21 面对一条比较复杂的指针或引用的声明语句时,从右向左阅读有助于弄清它的真实含义

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值