C++primer2.3 复合类型指针和引用

来源:互联网 发布:淘宝自动确认收货是几天 编辑:程序博客网 时间:2024/06/03 15:51

大纲

  1. 引用
  2. 指针

一、引用 &

这里说的都是左值引用,也就是别名。
右值引用是取地址。

  1. 引用其实就是给对象起一个别名,所以在刚刚定义一个引用的时候必须初始化,不然人家怎么知道你给谁起的别名;
  2. 初始化的时候,初始化的值不能为字面值或表达式,而且引用的类型也一定要和与之绑定的对象严格匹配。(ps:初始化常量引用时,可以允许绑定非常量的对象、字面值,甚至是一个表达式。)

           int   i=42;      const  int  &r1=i;      const  int  &r2=42;      const  int  &r3=r1*2;      int  & r4=r1  *  2;   这个是不可以的,因为r4是常量引用。
  3. 引用将它和初始值对象一直绑定在一起,因为不能令引用重新绑定到另外一个对象,因此引用必须初始化;

  4. 定义引用之后,对其进行的所有操作都是在与之绑定的对象上进行的,为引用赋值,其实就是给所绑定的对象赋值,但是如果定义的是常量的引用,那就不能通过修改所建立的引用对象来修改所绑定的对象的值;
  5. 引用本身不是一个对象,所以不能定义引用的引用;

二、指针 *

三、const变量和引用

  1. 定义const变量,定义时必须初始化,定义之后就不能改了;
  2. 非const引用只能绑定到与该引用相同类型的对象, const引用则可以绑定到不同但相关的类型的对象或绑定到右值;

关于const的初始化以及其他内容太多,这里不总结了。

0 0