关于指针赋值和const的疑惑
以下摘自《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的数据变成一个指针。
我是不是理解错了?