广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++二级指针和指针的引用
  • 950
分享到

C++二级指针和指针的引用

2024-04-02 19:04:59 950人浏览 八月长安
摘要

目录1、形参与实参均为指针时达不到此目的2、解决方案——指针引用或二级指针(1)形参为二级指针**p(2)形参为指针引用*&p3、总结 目的:形参指针

目的:形参指针改变实参指针所指向的对象(即地址)

举例:pointer指针指向白鸭子whiteDuck,如果想要设计一个函数,这个函数能够令pointer指向黑鸭子blackDuck。

图示如下:

代码简示如下:

Duck *duck = &oldDuck;
someFunction(duck);
// 此时duck指向newDuck;

1、形参与实参均为指针时达不到此目的

此时,二者指向同一地址,可以对同一对象进行操作。但是形参指针不能改变实参指针所指向的地址,因为二者是两个完全无关的指针对象。函数传递参数时,将实参指针的值传递给形参指针,是一个值传递的过程。

2、解决方案——指针引用或二级指针

为了让函数能够更改实参指针所指向的地址,需要将实参的地址传入函数。

此时有两种策略来实现目的:

  • 形参为二级指针**p;
  • 形参为指针引用*&p;

下面分别对两种方式进行介绍,并提供相应的代码。

其中Duck类的定义如下:

class Duck {
public:
    Duck(int color) { this->color = color; }
    // 0表示白色,1表示黑色
    int color = 0;
};

(1)形参为二级指针**p

此时,实参为指针的地址,形参为指针的指针,即形参指向实参。形参对实参进行操作,而不是对实参指向的地址进行操作。

void changeObject(Duck **p) {
    *p = new Duck(1);
}
// 调用方式
changeObject(&pointer);

(2)形参为指针引用*&p

指针引用即指针的引用,指针引用同样是针对指针进行操作,而不是针对指针指向的地址进行操作:

void changeObject(Duck *&p) {
    p = new Duck(1);
}
// 调用方式
changeObject(pointer);

3、总结

不管是C还是c++,指针都是非常重要的概念,使用的频率也较高。二级指针和指针引用并不是完全相等的两个概念,比如引用不能改变其指向的对象,但是指针可以指向任意的对象。

到此这篇关于C++二级指针和指针的引用的文章就介绍到这了,更多相关C++指针引用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++二级指针和指针的引用

本文链接: https://www.lsjlt.com/news/141887.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++二级指针和指针的引用
    目录1、形参与实参均为指针时达不到此目的2、解决方案——指针引用或二级指针(1)形参为二级指针**p(2)形参为指针引用*&p3、总结 目的:形参指针...
    99+
    2022-11-13
  • C++的二级指针和指针怎么引用
    本篇内容主要讲解“C++的二级指针和指针怎么引用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++的二级指针和指针怎么引用”吧!目的:形参指针改变实参指针所指向的对象(即地址)举例:point...
    99+
    2023-06-29
  • C语言中二级指针解析(指向指针的指针)
    目录二级指针(指向指针的指针)二级指针的定义与理解二级指针定义格式二级指针赋值实例二级指针(指向指针的指针) 指针可以指向一份普通类型的数据,例如 int、double、char 等...
    99+
    2022-11-13
  • 深入理解c++指针的指针和指针的引用
    在C++中,指针是一种数据类型,可以存储变量的内存地址。指针的指针和指针的引用是两种特殊的指针类型。指针的指针是指一个指针变量的值是另一个指针的地址。也就是说,指针的指针存储的是一个指针变量的地址。可以通过多次间接引用来获取最终指向的变...
    99+
    2023-08-09
    c++
  • 【C进阶】指针(二)
    六、函数指针数组 数组是一个存放相同类型数据的存储空间,我们已经学习了指针数组 eg: int *arr[10]       //整形指针数组-数组-存放的是整形指针 char *arr[5]      //字符指针数组-数组-存放的...
    99+
    2023-09-12
    c语言 算法 数据结构
  • C++ this指针和空指针的具体使用
    每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码那么问题是:这—块代码是如何区分那个对象调用自己的呢? C++通过提供特殊的对象指针,this...
    99+
    2022-11-12
  • C++的指针,引用和STL详解
    目录指针、引用指针引用STLSTL中六大组件常用容器用法介绍vec.front(), vec.back()        返回vector的首...
    99+
    2022-11-13
  • c++函数名指针和函数指针
    目录前言例 1例 2例 3前言 我们先来看一下函数指针式如何定义的,假如我们有一个函数int fun(int){…};那么他对应的函数指针写法就应该是int (*p)(...
    99+
    2022-11-13
  • c 二级指针3种内存分配
    //#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <string>///1.直接分配在栈上 通过char[][]方式in...
    99+
    2023-01-31
    指针 分配 内存
  • C++函数指针+对象指针+this指针+指向类静态和非静态成员的指针
    目录1、指向函数的指针2、对象指针3、this指针4、指向类的非静态成员的指针5、指向类的静态成员的指针 1、指向函数的指针 函数的代码在内存中的首地址,是由函数名表示的,也就是说函...
    99+
    2022-11-13
  • C++中的数组引用和指针引用
    目录C++中的数组引用和指针引用一、引用的本质二、数组的引用三、指针的引用C++中的数组引用和指针引用 一、引用的本质 我们在讲解引用之前需要知道为什么C++中会单独提出引用这个概念...
    99+
    2022-11-12
  • C语言指针类型与野指针引起的原因
    目录一、指针是什么二、指针和指针类型1.指针±整数2.指针解引用三.野指针1.引起野指针的原因2.如果避免野指针一、指针是什么 指针也就是 内存地址 ,在计算机上我们访...
    99+
    2023-02-11
    C语言指针类型 C语言野指针
  • C++指针与引用的异同
    目录1、引用与指针的区别1.1 相同点1.2 区别1、引用与指针的区别 指针和引用的原理非常的相似,所以很多时候尤其是面试的时候经常会拿来比较。 本文来梳理一下引用和指针的一些异同。...
    99+
    2022-11-12
  • C++常量指针,指针常量,指向常量的常指针详解
    目录什么是指针内存地址指针所占内存const 变量指针常量,常量指针和指向常量的指针指针常量常量指针指向常量的常指针空指针、野指针总结什么是指针 指针就是指向变量在内存中的地址 数据...
    99+
    2022-11-12
  • C语言的空类型指针,空指针,野指针详解
    目录空类型指针-void*空指针-NULL野指针造成野指针的原因1.指针未初始化2.指针越界访问3.指针指向的空间已经释放避免野指针总结空类型指针-void* void是空类型,vo...
    99+
    2022-11-12
  • C语言中如何实现二级指针
    今天小编给大家分享一下C语言中如何实现二级指针的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C语言中二级指针的实例详解用图说...
    99+
    2023-06-17
  • 怎么在C++中使用this指针和空指针
    本篇文章为大家展示了怎么在C++中使用this指针和空指针,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属...
    99+
    2023-06-14
  • 怎么用C++实现野指针和悬空指针
    本篇内容主要讲解“怎么用C++实现野指针和悬空指针”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C++实现野指针和悬空指针”吧!目录一、野指针二、悬空指针1 情况一2 情况二3 情况三野指...
    99+
    2023-06-20
  • C++函数指针,对象指针,this指针,指向类静态怎么用
    这篇文章主要介绍了C++函数指针,对象指针,this指针,指向类静态怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数指针,对象指针,this指针,指向类静态怎么用文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • C++野指针和悬空指针的实现方法
    目录一、野指针二、悬空指针2.1 情况一2.2 情况二2.3 情况三野指针和悬空指针是指针中常见的两个概念,本文结合实例讲解来讲解下。 一、野指针 野指针是指尚未初始化的指针,既不...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作