c++引用和指针

引用:
将声明符写成&d的形式来定义引用类型,其中d是变量名。
1、引用并非对象,它只是为一个已存在的对象起的别名。
2、引用必须初始化,一旦初始化完成,引用将和它的初始值一直绑定在一起。
3、引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。
4、通常情况下,引用的类型要和与之绑定的对象严格匹配。
例外:
常量引用:
double x = 1.2;
const int &p = x;
初始化对常量的引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。


指针:
将声明符写成*d的形式来定义引用类型,其中d是变量名。
1、指针是一个对象,无须在定义时赋初值;在块级作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。
2、通常情况下,指针的类型要和他所指向的对象严格匹配。
例外:
指向常量的指针:不能用于改变其所指对象的值。
int x = 1.2;
const int *p = &x;
允许一个指向常量的指针指向一个非常量对象。
3、如果指针指向了一个对象,则允许使用解引用符(*)来访问该对象;
对指针解引用会得出所指的对象,因此如果给解引用的结果赋值,也就是给所指对象赋值。


const指针:
即常量指针,必须初始化,而且一旦初始化完成,则它的值(也就是存放在指针中的那个地址)就不能改变了。
把*放在const关键字之前用以说明指针是一个常量。
int x = 1;
int * const p = &x; // p将一直指向x

猜你喜欢

转载自www.cnblogs.com/ACGame/p/8977844.html