C++学习笔记 | 第二章 变量和基本类型 | (3)

从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* 指针存放着一个地址,我们对该地址中到底是什么类型的对象并不了解。


未完待续...


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值