C++ primer第五版随笔--2015年1月6日

记录自己看这本书时的一些内容。

一、引用(reference)

引用为对象起了另外一个名字。例如:

int ival=1024;

int &relVal1=ival;//对,注意尽量不要用这方式:int& relval=ival;

int &relVal2;//报错,引用必须被初始化

      在定义引用时,程序把引用和它的初始值绑定(binding)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象始终绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。

注意以下定义方式:

int i=0;

int &relVal=i, r=i;////relval是引用,r不是

int &relVal=i, &r=i;//relval和r都是引用

二、指针(pointer)

今天看的指针类型主要是指针的简单定义以及使用,不涉及很难的应用,后续补充。

三、引用和指针混用

int i=3;

int &r=i;

int *p=&i;

int *&r1=p;//r1是一个队指针p的引用

因为引用不是一个对象,因此不能定义指向引用的指针。

四、const关键字和reference、pointer连用

1、

const int i=23;

const int &ref=i;//正确

ref=32;//错误

int &r1=i;//错误。试图让一个非const引用指向一个const对象会报错

2、

int i=234;

const int &ref=i;//正确,允许这样

const int &r2=24;//正确,允许这样

const int &r3=ref*2;//正确,允许这样

int &r4=ref*2;//错误,

3、const和pointer(常量指针和指针常量

原文地址:https://www.cnblogs.com/LCCRNblog/p/4205775.html