标签:
C++Primer2.3节介绍了两种复合类型:引用和指针
1.初始化常量引用时允许用字面值或任意表达式作为初始值,只要该表达式的结果能通过类型转换成引用的类型即可。
2.可以将基类的引用绑定到派生类对象上。举几个例子:
int &refVal4 = 10; // 错误:引用类型的初始值必须是一个对象
double dval = 3.14;
int &refVal5 = dval; // 错误:此处引用类型的初始值必须是int型对象
int i = 42;
const int &r1 = i; // 允许将const int&绑定到一个普通int对象
const int &r2 = 42; // 正确:r2是一个常量引用
const int &r3 = r1 * 2; // 正确:r3是一个常量引用
int &r4 = r * 2; // 错误:r4是一个普通的非常量引用
指针也能实现对其他对象的间接访问。与引用不同的是。
int ival = 42;
int *p = &ival;
int *p1 = nullptr; // 等价于int *p1 = 0;
c++11新标准,建议使用
int *p2 = 0; // 直接p2初始化为字面常量0
// 首先#include cstdlib
int *p3 = NULL; // 等价于 int *p3 = 0;
int zero = 0;
pi = zero; // _error: cannot assign an int to a pointer_
标签:
原文地址:http://www.cnblogs.com/star91/p/4789998.html