如何理解指向指针的指针?

本文由 伯乐在线 - 菜鸟浮出水 翻译自 StackOverflow。欢迎加入 技术翻译小组。转载请参见文章末尾处的要求。

问题:如何理解指向指针的指针?

我在一篇教程中看到下面这段,它描述指向指针的指针是如何运作的。

引用文章相关段落如下:

1
2
int i = 5, j = 6, k = 7;
int *ip1 = &i, *ip2 = &j;

现在我们可以这么写:

1
int **ipp = &ip1;

那么现在指针 ipp 指向了 ip1,ip1 指向了 i。*ipp 就是 ip1,**ipp 就是 i,或者说是 5。我们可以用我们熟悉的盒子箭头图来描述,像这样:

a8MUU

如果我们接着这么写:

1
*ipp = ip2;

我们就改变了 ipp 指向的那个指针(也就是 ip1),现在它指向 ip2 所指的地方。也就是说(ip1)现在它指向了 j:

bpfxT

我的疑问是:为什么在第二幅图里,ipp 还是指向 ip1 而不是 ip2?

最佳答案:

让我们暂时忘掉那些关于指针的各种类比。指针实际上存放的是内存的地址。

& 符号的意思是取地址,也就是返回一个对象在内存中的地址。

* 符号的意思是取得一个指针所指向的对象。 也就是如果一个指针保存着一个内存地址,那么它就返回在那个地址的对象。

所以当你这么写时 *ipp = ip2,实际上是把 ipp 存的地址所对应的对象,也就是 ip1 取到,然后把 ip2 存的值赋值给 ip1,也就是 j 的地址。

简单点就是:
&:取址。
* :取值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux定时任务Crontab命令详解

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认…

中小企业网络安全提升

为什么80%的码农都做不了架构师?>>> 据外媒报道,绝大多数网络罪犯的目标是中小企业,然而研究表明,大多数企业主并不认为自己有成为网络犯罪分子目标的可能。为了保护自己不受网络攻击,企业应该关注以下五个…

用Linux命令行生成随机密码的十种方法

本文由 极客范 - 小道空空 翻译自 Lowell Heddings。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法…

[个人网站搭建]·Django增加评论功能(Python3)

[个人网站搭建]Django增加评论功能 个人主页--> https://xiaosongshine.github.io/ 个人网站搭建github地址:https://github.com/xiaosongshine/djangoWebs 安装django插件 pip install django-contrib-comments配置settings.py INSTALLED_APP(#...,django_com…

一周工作60个小时并不值得骄傲,这是个问题!

本文由 极客范 - yesky 翻译自 Jeff Archibald。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。当我们声称自己在这周,上周或是上个月超负荷地工作了多少时间时,一种自豪感便会油然而生。 我之所以这么说是因为…

DOM的那些事

到底调用函数时要不要加()? 在html中,onclick后必须接字符串调用,而在js中则必须接函数进行调用。 addEventListener和click区别 onclick只是一个属性,且是唯一的。其只能绑定一个事件,容易在不…

解决 -- 代码没有问题时接口报错:Status Code: 404 Not Found

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我能确定这个工程的接口代码肯定没有问题,这时请求接口依旧报 404。 如: 经过多方检查 最终确认问题原因&…

java版开源工作流引擎ccflow从表数据数据源导入设置

为什么80%的码农都做不了架构师?>>> 关键字驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow .net开源工作流 从表数据导入设置 概要说明在从表的使用中我一般都会用到从数据库引入一些数据到表单中,这时候就需要有一个功能能够查询…

一周消息树:程序员想找好工作?那就学好Linux!

摘要:从一小众化的系统发展到今天在国际上支撑着绝大部分公司的重量级系统,Liunx现在被越来越多的公司重视。而Linux人才却没有跟上,为此,MongoDB公司的副总裁Matt Asay给软件开发者们一个建议:要学好Linux。 近期&…

读书笔记011:《伤寒论》- 手厥阴心包经

手厥阴心主起胸,属包下膈三焦宫,支者循胸出胁下,胁下连腋三寸同。仍上抵腋循臑内,太阴、少阴两经中,指透中冲支者别,小指次指络相通。此经少气原多血,是动则病手心热,肘臂挛急腋下肿…

支撑4.5亿活跃用户的WhatsApp架构概览

摘要:不顾谷歌CEO阻拦,WhatsApp最终以190亿美元的价格花落Facebook。能获如此天价与其月4.5亿的活跃用户是分不开的,同样不可或缺的还有支撑每日数百亿消息的高可靠架构。 【编者按】以190亿美元的价格出售给Facebook,交易谈判过…

注解驱动的 Spring cache 缓存介绍

概述 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,…

如何用Linux命令行管理网络:11个你必须知道的命令

本文由 极客范 - jerrylee 翻译自 Chris Hoffman。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。无论你是要下载文件、诊断网络问题、管理网络接口,还是查看网络的统计数据,都有终端命令可以来完成。这篇文章收…

10 张图带你深入理解Docker容器和镜像

此文中部分信息、图片需要 fan qiang , 如果未能正常显示,文末有原文连接 。【Kubernetes培训通知】DockOne将会于2018年5月18日在上海举办Kubernetes技术培训,培训内容包括:容器介绍、容器网络、Kubernetes架构基础介绍、安装、设计理念、架…

一个“Internal”牵扯出的代码泄露,阿里云独家回应

近日,阿里云云效平台被曝出现源代码泄露企业,涉及40家企业共200余项目,甚至波及用户隐私敏感数据。晚些时候,阿里云就此事作出回应,并在网站醒目标识并给出告警。今天,一篇题为《独家 | 阿里云出现源代码泄…

专访雷果国:从1.5K到18K 一个程序员的5年成长之路

摘要:上段时间CSDN博客上流传了一篇比较励志的博文,讲述了一个程序员从基础薄弱到入职心仪公司的5年成长经历,为了给那些待毕业或已毕业但对未来仍很迷茫的朋友指引前行的方向,CSDN专访了这篇博文的作者。 导语:今年三月份&#…

关于windows下的libtorch配置

关于windows下的libtorch配置 1.环境 Windows service 2012 R2/Windows10Cuda 9.0OpenCV3.4.1Libtorch1.0VS2017/VS20152.配置 第一步:CUDA 9.0cudnn7.5安装(也可以用CUDA8.0) 如果已经安装了cuda8.0及以上版本,可以忽略此步骤。 libtorch有cuda8.0 和cuda9.0的版本,为了与vs版…

解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题

这个问题有2种解决方法: 我的报错是:java.sql.SQLSyntaxErrorException: Table gaei_ms.gaei_work_task doesnt exist方法一: 转自:https://confluence.atlassian.com/fishkb/table-xxx-doesn-t-exist-error-with-mysql-server-30…

搭建webpack基础配置

搭建webpack基础步骤: 1.去官方网站下载node.js(根据自己电脑的系统类型选择) 2.安装node.js完成后打开cmd命令提示符: 出现版本号证明安装成功 3.cd到工程目录下 npm install -g vue-cli(这里使用的是vue-cli脚手架安…

研究:多感官教学增强记忆 学习效率事半功倍

人们在记忆外部信息时,必须先要去接受这些信息,而接受信息的“通道”不止一个,有视觉、听觉、嗅觉、味觉、触觉等等。有多种感官参加的记忆叫做“多通道”记忆。图为台中一幼稚园户外写生活动。 生动的教学方法往往可以吸引大多数孩子&#…