前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一级指针简单理解

一级指针简单理解

作者头像
潇洒
发布2019-07-02 18:04:07
5270
发布2019-07-02 18:04:07
举报
文章被收录于专栏:石头岛石头岛
两个关键符号:

& : 取内存地址符 * : 取内存值符

指针的操作规律:
代码语言:javascript
复制
1.声明的时候是往里放地址 int *p = &num,
2.直接拿的时候就是直接操作地址内的值 *p = 10;

在 C 中操作地址就可以操作值,就跟 java 中两个引用类型拿到引用可以操作内一个对象一样。

代码语言:javascript
复制
变量名    内存地址	   值
a        [0x23fa32]	100
*p       [0x24aa34]	[0x23fa32]

指针存放的是 a 的内存地址,&p则是自己的内存地址 [0x24aa34]

1.创建一个针指并使用
代码语言:javascript
复制
void main() {
	int num = 100;
	int *p = #		//将内存地址给 *p
	printf("%x, %x",&num, &p);
	*p = 10;
	printf("%d", num);	//10
}

分析过程: 根据拿到的直址 分别查看 &num,和 &p。&num 的地址以 带符号 4字节查看是100。 查看&p 的地址,以十六进制查看,因为存的是 &num 的地址。并不是实际的值。这就证明了指针变量存的是地址。 当程序再往下走 *p = 10 时,再回头看 &num 的值,已经变红,修改成了10。

2.传递指针
代码语言:javascript
复制
void main() {
	int num = 100;
	change(&num);	//形参是指针类型,就可以将地址传递过去。
}

void change(int *p) {		//创建一个指针用来接收地址
	*p = 20;
}

需要注意的是C当中的方法形参使用的是变量副本机制,也就是说,方法形参也是有个自己的内存地址。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 两个关键符号:
  • 指针的操作规律:
  • 1.创建一个针指并使用
  • 2.传递指针
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档