| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖, 1 人收藏
标题:求解释const char * const & a
只看楼主 加入收藏
说123454321
Rank: 2
等 级:论坛游民
帖 子:17
专家分:46
注 册:2013-6-22
结帖率:100%
收藏(1)
已结贴  问题点数:15 回复次数:2 
求解释const char * const & a
&有什么用,不知道两个const怎么区分开来
2013-07-10 13:30
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:15 
定义中用到&是独立引用.
比如:
char i;
char &a=i;
表示a是i的一个单独引用.
当有i='a'时,也有a='a';
当有a='c'时,也有i='c';
两个变量的标示符都代表同一个内存空间地址.

声明中带有const时,表示为常量.
对const char* const &a=i从右读起
const &a表示a为常量,一开始要对其赋值,这里赋予i,表示a是i的一个单独引用.在以后的程序中,不能对a本身进行值的修改,即不允许有&a=othervaries 之类的赋值语句.

const char * const &a
是在const &a的基础上声明:const char *a,即对*a(a所指向的内容为常量,不可更改),在以后的程序中,不允许有这样的语句:*a=90;

所以整个声明可以理解为:a 是i的一个别名,且永远是i的别名(不会变成其它变量的别名).不能利用a来修改i的值.a只是对i的值的引用

思考赐予新生,时间在于定义
2013-07-10 13:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
楼上讲得很详细,我也简单的说一下

const char * const & a 中 & 是引用,这个就不说了
const char* a 和 char const* a 一样,const 是修饰 *a 的,也就是 *a 不可以被更改,比如你写 a[12] = 'c'; 会编译失败
char* const a 中 const 是修饰 a 的,也就是 a 不可以被更改,比如你写 a = NULL; 会编译失败
const char * const a 的话,就是一个说 *a 不可以被修改,另一个说 a 不可以被修改,也就是a不可以被修改,*a也不可以被修改。
2013-07-10 14:34
快速回复:求解释const char * const & a
数据加载中...
 
   



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

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