• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 深入理解c++指针的指针和指针的引用

深入理解c++指针的指针和指针的引用

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++ 指针write,c++ 引用 指针,c++指针,c++指针详解,c++指针数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组)

为什么需要使用它们

当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。

如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来

的值。我们用下边的代码说明一下问题:

int m_value = 1;

void func(int *p)
{
  p = &m_value;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(pn);
  cout << *pn <<endl;
  return 0;
}
</div>

看一下输出结果

输出的是两个2

使用指针的指针

展示一下使用指针的指针做为参数

void func(int **p)
{
  *p = &m_value;

  // 也可以根据你的需求分配内存
  *p = new int;
  **p = 5;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(&pn);
  cout << *pn <<endl;
  return 0;
}
</div>

我们看一下 func(int **p)这个方法

•p:  是一个指针的指针,在这里我们不会去对它做修改,否则会丢失这个指针指向的指针地址

•*p: 是被指向的指针,是一个地址。如果我们修改它,修改的是被指向的指针的内容。换句话说,我们修改的是main()方法里 *pn指针

•**p:两次解引用是指向main()方法里*pn的内容

指针的引用

再看一下指针的引用代码

int m_value = 1;

void func(int *&p)
{
  p = &m_value;

  // 也可以根据你的需求分配内存
  p = new int;
  *p = 5;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(pn);
  cout << *pn <<endl;
  return 0;
}
</div>

看一下func(int *&p)方法

•p: 是指针的引用,main()方法里的 *pn

•*p:是main()方法里的pn指向的内容。

以上这篇深入理解c++指针的指针和指针的引用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++中this指针用法详解及实例
  • 简单谈谈C++中指针与引用的区别
  • C++中指针和引用的区别详解
  • 总结C/C++面试中可能会碰到的字符串指针题
  • C++指针 详细介绍及总结
  • 深入理解c++指针的指针和指针的引用
  • 解析C++中指向对象的指针使用
  • C++中指针的数据类型和运算相关知识小结
  • 浅析C++中的函数与指针
  • 剖析C++编程当中指针作为函数参数的用法

相关文章

  • 2017-05-28原创的C语言控制台小游戏
  • 2017-05-28c/c++实现获取域名的IP地址
  • 2017-05-28C++指向类成员函数的指针详细解析
  • 2017-05-28简单分析C++指针的操作和运算
  • 2017-08-30数组作为函数参数、scanf初始化指针
  • 2017-05-28利用C语言实现顺序表的实例操作
  • 2017-05-28C++基础入门教程(八):函数指针
  • 2017-05-28c语言实现的带通配符匹配算法
  • 2017-05-28基于linux下C开发中的几点技术经验总结
  • 2017-05-28纯C语言:分治快速排序源码分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++基础入门教程(八):函数指针
    • C++二分查找在搜索引擎多文档求交的应用分析
    • C++使用递归方法求n阶勒让德多项式完整实例
    • C语言 数与串之间转换的方法
    • 一个string类的简单实现案例
    • 如何统计在一篇文章中某个单词出现了几次,以及第一次出现的位置
    • 复数乘法中的结构体赋值实现代码
    • 基于typedef的用法详解
    • 全局变量与局部变量在内存中的区别详细解析
    • C++第11版本中的一些强大的新特性小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有