| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:关于 const 指针赋值问题
只看楼主 加入收藏
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:2 
关于 const 指针赋值问题
(课本上的例子):
程序代码:
const int **pp2;
int *p1;
const int n=13;
pp2 = &p1; //不允许这样赋值,但是这里我们假设允许
*pp2=&n; //合法,二者都是const,但这同时会使p1指向n
*p1=10; //合法,但这将改变const n的值

这里的p1已经是指针了,为什么要加&,这样提取的是谁的地址。
pp2是指向指针的指针,可是为什么加了个*号,这是什么意思。不是*号是取指针的数值吗。
为什么说这同时会使p1指向n。
搜索更多相关主题的帖子: 课本 
2014-09-17 21:19
NBABOY
Rank: 4
等 级:业余侠客
威 望:4
帖 子:129
专家分:281
注 册:2013-5-2
收藏
得分:20 
const int **pp2;//只读int二级指针
int *p1;//一级指针
const int n=13;//只读int
pp2 = &p1; //不允许这样赋值,但是这里我们假设允许,一级指针取地址升级为二级指针是合法的吧?
*pp2=&n; //合法,二者都是const,但这同时会使p1指向n
*p1=10; //合法,但这将改变const n的值
//噢,好绕啊!我记得那本书上说攻击只读数据,应该就是这个吧
另外加&是变量升级,例如int a; &a就是一级指针,&&a就是二级,
*刚好相反,是降级,懂了吧!
2014-09-17 22:21
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 2 楼 NBABOY
太感谢了,纠结了半天
2014-09-17 22:42
快速回复:关于 const 指针赋值问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026144 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved