关于指针赋值和const的疑惑

Z. X. Y. Z. X. Y. 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下摘自《C Primer Plus》第10章:数组和指针,第6节:保护数组中的数据。第301页。人民邮电出版社 2016年4月第一版

关于指针赋值和const需要注意一些规则。首先,把const数据或非const数据的地址初始化为指向const的指针或为其赋值是合法的:
double rates[5]={88.99, 100.12, 59.45, 183.11, 340.5};
const double locked[4]={0.08, 0.075, 0.0725, 0.07};
const double*pc=rates; //有效;
pc=locked; //有效;
pc=&rates[3]; //有效;

疑问:“把const数据或非const数据的地址初始化为指向const的指针”这句话什么意思?
书中一共写了3个例子:
const double*pc=rates; //有效;
pc=locked; //有效;
pc=&rates[3]; //有效;
我觉得第一个例子应该是代表“非const数据的地址初始化为指向const的指针”这句话的。
可是第一个例子不是初始化指针pc么?这跟“非const数据的地址初始化为指向const的指针”矛盾吗?我理解这句话的意思是,把非const的数据初始化,接着把这个非const的数据变成一个指针。
我是不是理解错了?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
Z. X. Y.
C语言 70,040 成员 243,237 内容