社区
C++ 语言
帖子详情
m的值是怎样变成20的?
mapping_ping
2008-10-31 08:08:22
m的值是怎样变成20的?有点乱,没有想明白,请帮忙分析分析。
int m = 10;
int *p;
p = &m;
*p = 20;
printf("m = %d\n",m);
...全文
189
33
打赏
收藏
m的值是怎样变成20的?
m的值是怎样变成20的?有点乱,没有想明白,请帮忙分析分析。 int m = 10; int *p; p = &m; *p = 20; printf("m = %d\n",m);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Forest822
2008-11-07
打赏
举报
回复
p = &m;
*p = 20;
p指向了m的内存单元 并修改值为20
好尴尬奥
2008-11-07
打赏
举报
回复
[Quote=引用 16 楼 nuaamzc 的回复:]
引用 1 楼 zmlovelx 的回复:
p = &m;
*p = 20;
p指向了m的内存单元 并修改值为20
刚刚发错了
up
[/Quote]
自己发表一个简单的看法
p=&m
也就是此时的p取得的是m的地址,实际m的值为发生改变
*p是指向了m的实际值
也就是说*p=(m=20)
可不可以这样理解呢?
西园软件
2008-11-07
打赏
举报
回复
int m = 10;
int *p;
p = &m;
*p = 20;
printf("m = %d\n",m);
变量,实际上是一个存储单元或者存储区域,说白了,就是一个放数据的地方或容器.,
它有两个属性,名字和地址.通过名字和地址,你都可以访问这个变量,说白了,就是可以通过变量名和地址往这个存储单元里放数,或者取数.
就象学校是放学生的地方,学校有个名字,也有个门牌号表示的地址,你通过名字和地址,都可以找到这个学校来.
这两句程序中,m是变量名;p=&m,是变量的地址.
当你改变指针变量p(p里面的值是m的地址)所指向的存储单元(实际上就是变量m)里的值,事实上,就是改变了m的值.
XiaoMii
2008-11-07
打赏
举报
回复
建议看下值调用和引用调用,就会明白
XiaoMii
2008-11-07
打赏
举报
回复
这其实就是一个引用调用的原理
霍大脚
2008-11-07
打赏
举报
回复
引用与指针这个问题应该是指针开章就讲的吧
liu3xing3long
2008-11-07
打赏
举报
回复
首先要清楚指针和指针指向变量的区别
比如char*p=new char[23]
p是指针是位于栈上的,在出了作用域之后会自动释放,
至于后面的数组是位于堆上的,只能手动释放,所以会有delete p;
p只是一个符号,它指向的是char[23]而非p本身是字符数组;
SylarXillee
2008-11-07
打赏
举报
回复
指针的解引用会改变所指向单元的内容
jinsehongfengtiger
2008-11-07
打赏
举报
回复
p = &m;
此时p指向m的内存地址,也就是说*p和m是一个值
所以改变*p的值就等于改变了m的值
BuleRiver
2008-11-07
打赏
举报
回复
p = &m; // p指向m存储的内存单元,
*p = 20; // 修改m的值
MilanSpiRiT
2008-11-01
打赏
举报
回复
int m = 10; //定义整型变量
int *p; //定义一个指向整形变量的指针
p = &m; //该指针指向m变量的地址
*p = 20; //将指针指向的地址上的数据改为20,这个数据就是m
qingerzheng
2008-11-01
打赏
举报
回复
关键就是要正确理解指针的含义,指向了一个内存地址
lunarfan
2008-11-01
打赏
举报
回复
p = &m
这时你可以把*p就当成m
appleshao
2008-11-01
打赏
举报
回复
*p等价与int m
aidingbao1019
2008-10-31
打赏
举报
回复
万恶的指针,强大的指针。。。。基础基础。。。。
snsn1984
2008-10-31
打赏
举报
回复
通过指针指向修改.凡是介绍指针的部分都应该有这样的例子.
train0714
2008-10-31
打赏
举报
回复
[Quote=引用 14 楼 dfkjsdhfks 的回复:]
像这种问题书上已经讲得够清楚了,实在不行还可以上网搜一下指针方面的电子书吗,能自已搞定岂不更好.顺便还能更全面的了解指针,而不单单是一个问题.
当然对于这个问题楼上几位已经说得很清楚了.
[/Quote]
up
nuaamzc
2008-10-31
打赏
举报
回复
[Quote=引用 1 楼 zmlovelx 的回复:]
p = &m;
*p = 20;
p指向了m的内存单元 并修改值为20
[/Quote]
刚刚发错了
up
nuaamzc
2008-10-31
打赏
举报
回复
[Quote=引用楼主 mapping_ping 的帖子:]
m的值是怎样变成20的?有点乱,没有想明白,请帮忙分析分析。
int m = 10;
int *p;
p = &m;
*p = 20;
printf("m = %d\n",m);
[/Quote]
up
dfkjsdhfks
2008-10-31
打赏
举报
回复
像这种问题书上已经讲得够清楚了,实在不行还可以上网搜一下指针方面的电子书吗,能自已搞定岂不更好.顺便还能更全面的了解指针,而不单单是一个问题.
当然对于这个问题楼上几位已经说得很清楚了.
加载更多回复(13)
arcgis数据的M/Z
值
设置问题
本文详细介绍了如何使用ArcPy设置地理数据集中的M和Z
值
信息,包括M/Z分辨率、M/Z容差及输出包含M/Z
值
的环境设置。通过调整这些参数,可以精确控制地理数据的精度和存储方式。
GIS坐标中的Z
值
和M
值
本文介绍了如何在ArcGIS中处理带有ZM的几何类型数据,包括理解Z
值
和M
值
的作用,以及如何通过设置环境参数禁用这些
值
,并重新创建数据以适配不支持ZM类型的GIS软件。
全网首发飞猫M
20
详细刷机教程
本文详细介绍飞猫M
20
随身WiFi刷机教程。先进行准备工作,包括设备与软件准备、下载必要软件和固件、备份数据;接着阐述刷机步骤,如安装驱动、格式化卡、复制文件、进入刷机模式等;还提及注意事项和常见问题解决方法,刷机有风险,需谨慎操作。
(C语言)(用指针的方式处理)有n个整数,使前面各数顺序向后移动m个位置,最后m个数
变成
最前面m个数
博客主要讲述有n个整数,要将前面各数顺序向后移动m个位置,使最后m个数
变成
最前面m个数。
台湾
20
m DEM高程瓦片数据介绍
本文介绍了台湾地区发布的
20
m高精度地形瓦片数据,包括其精度优势、现势性和数据细节,以及如何通过Nginx发布和Cesium接入进行地形可视化。尽管存在部分军事管制区数据缺失,整体质量仍很高。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章