c++ primier 中的一个小疑点

c++ primier 中的一个小问题
各位大大好,本人菜鸟,在第一次看C++ primier 4ed。在书中P157页(对应英文182页)有这样一段话:
当使用非const对象初始化const对象的引用时, 系统将非const对象转化为const对象。此外,还可以将非const对象的地址(或非const指针)转换为指向相关const类型的指针:
C/C++ code

int i;
const int ci=0;
const int &j=i;   //ok;convert non-const to reference to const int
const int *p=&ci; //ok;convert address of non-const to address of a const


感觉说明文字的第二句和代码的最后一句不相符,貌似ci已被定义为const类型了,对于这句话好像就没有说服力了。不值如果想要说明这句话,是不是应该将“const int ci=0;”改为“int ci=0;”?
另外,这样的类型转换是否意味着i与ci及直接变为const类型的了?还是在这两句中临时成为const类型的?

------解决方案--------------------
LZ啊,这个蛮好理解嘛!
int i;
const int ci=0;
const int &j=i;
const int *p=&ci;
你看&j不可变了,因为是const,这里又将i赋值于他,所以将i也变成const咯!
这里如果const int *p=&i;这里是将i地址复制与p,然而p可改变,*p不可变,
就是说这里i不是const!i是可以改变的!
说的估计有点模糊