美文网首页
C++复合类型之引用和指针

C++复合类型之引用和指针

作者: ElliotG | 来源:发表于2022-08-31 09:55 被阅读0次

1. 什么是复合类型

复合类型(compound type)是指基于其它类型定义的类型(eg: 引用和指针)。

 

2. 引用(reference)

引用即别名,引用为对象起了另外一个名字,引用类型引用另外一种类型。

引用定义后, 对其进行的所有操作都是在与之绑定的对象上进行的。

eg:

int ival = 1024;
int &refVal = ival;   // refVal指向ival,是ival的另一个名字
int &refVal2;          // 报错: 引用必须被初始化

refVal = 2;             // 此处即是赋给了ival

 

3. 指针(pointer)

指针是指向另外一种类型的复合类型。

指针本身就是一个对象,允许对指针进行赋值和拷贝,指针的生命周期内它可以先后指向几个不同的对象。

eg:

int ival = 42;
int *p = &ival;  // p存放变量ival的地址,或者说p是指向变量ival的指针

cout<<*p;       // 通过解引用符访问指针指向的对象,输出42
*p = 0;            // 通过p为变量ival赋值
cout<<*p;      // 输出0

 

4. void*指针

void*是一种特殊的指针类型,可用于存放任意对象的地址。

 

5. 指向指针的指针

指针是内存中的对象,像其它对象一样也有自己的地址,因此允许把指针的地址再存放到另一个指针当中。

eg:

int ival = 1024;
int *pi = &ival;      // pi指向ival的指针
int **ppi = &pi;    // ppi指向pi, 指向一个int型的指针

ppi --> pi --> ival(1024)

 

6. 指向指针的引用

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

但是指针是对象,所以存在对指针的引用。

eg:

int i = 42;
int *p;            // p是一个int型指针
int *&r = p;   // r是一个对指针p的引用

r = &i;           // r引用了一个指针,因此给r赋值&i就是令p指向i
*r = 0;          // 解引用r得到i, 也就是p指向的对象i的值改为0

cout<<i;      // 0

 

7. const限定符

相关文章

  • C++数据类型(三)引用和指针

    复合类型 C++复合类型有多种,这里只介绍其中的两种,引用和指针。 引用 引用:为对象起另外一个名字,引用类型引用...

  • 2018-06-24指针和引用

    C++又很多复合类型,本文介绍两种指针和引用 引用 引用是一种复合类型,C++11新增加了一种引用“右值引用”,常...

  • C++复合类型之引用和指针

    1. 什么是复合类型 复合类型(compound type)是指基于其它类型定义的类型(eg: 引用和指针)。 2...

  • 1. 引用和指针

    引用 参考文档 在C++中,引用相当于为变量起了个别名。引用和指针一样,是一种复合类型(compound type...

  • 3 - 指针和引用的区别

    引用是refer to指针是point to指针和引用均为复合类型 指针本身为一种对象引用就是一个对象的别名 引用...

  • c++指针和引用的详细介绍(指针常量、常量指针)

    c++指针和引用的详细介绍 1、指针和引用的区别 指针-对于一个类型T,T就是指向T的指针类型,也即一个T类型的变...

  • 关于C++引用&指针的一些基础知识

    最近在学习C++,所以总结了一些引用和指针的基础知识分享给大家。下面是一些相关的概念。复合类型:是指基于其他类型定...

  • C++ 引用类型 — 左值引用、常引用和右值引用

    在 C++ 中,引用类型是一种复合类型,可以分为左值引用、常引用和右值引用 在了解什么是左值引用和右值引用之前,我...

  • Cpp:数组

    现在开始学习第四章“数组和指针”。C++语言提供了两种类似于vector和迭代器类型的低级复合类型——数组和指针。...

  • 复合类型(一):引用

    C++有好几种复合类型,这里介绍一下其中最重要的两种:引用和指针。首先我们要知道,在C++中,一条声明语句是由一个...

网友评论

      本文标题:C++复合类型之引用和指针

      本文链接:https://www.haomeiwen.com/subject/dmgjnrtx.html