| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:const 和指针问题
只看楼主 加入收藏
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
收藏
 问题点数:0 回复次数:2 
const 和指针问题
各位,我请教一个问题.
在C++ 中
int n;
const int  *p=&n;  // 是可以的

const int n=5;
int *p=&n  //是不允许的

那么
int n;
int *p=&n;
const int **pp=&p;  //允许吗?  如果允许的话,const int **pp=&p; 是表示 p不可更改还是表示n不可更改?

int n;
const int *p=&n;
const int **p = &p;//允许吗?
搜索更多相关主题的帖子: const 指针 
2008-08-22 19:22
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 
const int *p//这样是指向常对象的指针,不能通过更改p的值而修改p所指向的对象的值
int const *p;//这是一个常指针,表示p只能指向初始化的的变量,不能更改其指向
int n;
int *p=&n;
const int **pp=&p;  //允许吗?  如果允许的话,const int **pp=&p; 是表示 p不可更改还是表示n不可更改?

int n;
const int *p=&n;
const int **p = &p;//允许吗?

以上两个都可以,只要符合常对象只能被指向常对象的指针所指向即可
2008-08-22 20:10
zzt_428
Rank: 2
来 自:南京师范大学
等 级:论坛游民
威 望:2
帖 子:243
专家分:22
注 册:2008-7-6
收藏
得分:0 
回复
楼上说错了,,第一个是不允许的!

一级关系时,你可以把一个普通变量的地址赋值给指向常量的指针
但是两级关系的时候,把const 与 非const 混合发赋值方式是不安全的,也是不允许的.

如果数据类型本身不是指针,可以将const 数据和非const 数据的地址赋给指向const 的指针,但是将非const 数据的地址赋给const 指针,那就错了!
2008-08-23 18:44
快速回复:const 和指针问题
数据加载中...
 
   



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

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