以下摘自《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的指针”。
三个有效的例子中,我看不出到底哪个是被初始化了。
const数据和非const数据分别为,数组locked和数组rates,数组的地址也已经建立,现在把他们的地址初始化是什么意思?三个例子中,后面两个都是赋值,只有第一个是初始化,但这不是指针pc的初始化么?跟数组的数据有什么关系?
const double*pc=rates;
这个到底是指针pc被初始化了,还是rates被初始化了,还是互相被初始化了?
我理解的是指针pc被初始化了,所以那句“非const数据的地址初始化为指向const的指针”,这句话我就理解不了了。