博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指针的指针
阅读量:4305 次
发布时间:2019-06-06

本文共 531 字,大约阅读时间需要 1 分钟。

1 int val1,val2,val3;2 3 int *p1 = &Val1;4 5 int *p2 = &val2;6 7 int *p3 = &val3;

使用指针的指针:

1 int **pp1 = &p1;2 3 int **pp2 = &p2;4 5 Int **pp3 = &p3;

对于int **pp1 = &p1; 我们可以理解成取得p1的地址赋值给指针pp1,*pp1就是p1,**pp1就是val1。用下面的图来表示就是:

 

 

现在改写 *pp1 = p2 ,就是将p2存放的地址赋值给了p1,现在p1指向的地址为val2的值,所以现在int num= *p1,num就等于6。 

指针存放的是对象在内存中的地址。

&是取地址,意思是返回当前对象在内存的中的地址

*是取值,意思是返回一个指针所指向的对象,如果当前指针保存的是一个内存地址,那么*就返回这个内存地址所对应的对象

所以当*pp1 = p2,就是返回pp1所指向的对象p1,然后将p2指向的地址赋值给p1,那么p1这个指针所指向的对象就变成了val2。

&:取地址

*:取值

 

转载于:https://www.cnblogs.com/leoncumt/p/10473750.html

你可能感兴趣的文章
2/19 福建四校联考
查看>>
abap 中modify 的使用
查看>>
tomcat调优方案Maximum number of threads (200) created for connector with address null and port 8091...
查看>>
java类的加载机制
查看>>
MDK linker和debug的设置以及在RAM中调试
查看>>
CocosCreator2.1.0渲染流程与shader
查看>>
制作新网络框架快速自动生成消息结构体的编辑器
查看>>
[转]Device Context 设备环境 设备上下文 理解
查看>>
事务的传播性和隔离级别
查看>>
2018.3.24 struct
查看>>
Linux系统删掉多个文件
查看>>
【随笔】Win7下GVIM的安装与配置
查看>>
协程,IO模式
查看>>
移动端meta标签
查看>>
是前端类库还是前端框架?
查看>>
解决glib2.0缺失问题 分类: LINUX 20...
查看>>
一些杂想
查看>>
js原型和原型链
查看>>
工作区和暂存区
查看>>
cf B. Fixed Points
查看>>