C++Primer学习之一引用和指针

清疚 2023-02-18 12:56 125阅读 0赞

一.引用

引用是一种复合类型,引用分为左值引用和右值引用,其中右值引用时C++11提出来的,

常说的引用其意为左值引用。注意:引用不是对象,它是一个对象(变量)的别名,不能改变引用的对象,故必须在初始化的确定引用的对象。

(1)引用(左值引用)

引用的类型必须和被引用变量的类型一致,但有两种例外情况。

①const引用

  1. double dval = 3.14;
  2. Const int &r1 = dval;

其内部转化为:

  1. Const int temp = dval;
  2. Const int &r1 = temp;

temp是一个临时量,即是一个未命名的对象。所以如果r1不是常量引用,那么即是允许通过引用改变常量了,故C++语言将它归为非法,编译报错。

②C++Primer p534 // 看到再完善

(2)右值引用 // 看到再完善

C++Primer p471

二. 指针

关于const与constexpr见下一篇文章详细介绍。

(1)指针和const

如:

  1. Const int * const p; // 这里的P是一个常量指针(右边const确定),指向整形常量(左边const确定)。

(2)指针和constexpr

如:

  1. Constexpr int *p1; // 这里的p1是一个指向整形常量指针。
  2. Constexpr const int *p2; //这里的p2是指向整形常量的常量指针。

(3)指针和类型别名

如:

  1. typedef char *pstring;
  2. Const pstring ctrs = 0;//cstr是指向char的常量指针
  3. Const char * str = 0; // str是指向const char的指针
  4. Const pstring *ps; // ps是一个指针,它的对象是指向char的常量指针

发表评论

表情:
评论列表 (有 0 条评论,125人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++指针引用

    引用 是内存空间另外一个别名,相当于门牌号,可以用它来找到具体的内存空间。 int i = 17; int &b = i; cout << b

    相关 C++Primer学习之一引用指针

    一.引用 引用是一种复合类型,引用分为左值引用和右值引用,其中右值引用时C++11提出来的, 常说的引用其意为左值引用。注意:引用不是对象,它是一个对象(变量)的别名,

    相关 C++ 引用 指针区别

    引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任

    相关 指针引用

    1.指针和引用的差别 (1)非空区别:任何情况下都不能使用指向空值的引用。一个引用总是指向某些对象。如果声明一个变量并让它指向一个对象,但是该变量某些时候可能也不指向任何对

    相关 引用指针区别

    将“引用”作为函数参数有哪些特点? (1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对

    相关 指针引用的区别

    指针和引用的区别 1. 引用 引用是一个对象的别名,主要用于函数参数和返回值类型,引用必须初始化,引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。

    相关 指针引用

    1、引用 1. 引用必须初始化 引用就是给对象取一个别名。定义引用,程序把引用和它的初始值绑定在一起(绑定之后不可再绑定其他对象),而不是初始值拷贝引用,为