i=39是可以的
*j=39不可以
j++不可以
const int *const j;
后面的const 使得 j++不可用,即变量 j这个指针是个常量;不可以改变指针变量 j的值。
前面的const int *使得 *j=39不可以用,表示这个指针所指的值不能变,是个指向常量的指针。
是指对指针j而言, *j是常量,不可以通过 *j改变所指的值。
const int j;int const j;是一样的表示 j是个常量。
const int *const j=&i;
指向常量的常指针,该指针是不能改变的,就是不能再改变该指针的指向,
如果指向非const变量,则可通过指针改变变量的值,所以 i = 39;是可以执行的。
const int *const j=&i;
意思是 j 是指向不能改,也不能改变j 指向的值。
所以 j =&x 是错的。
*j = 5 是错的。
以上 都是 对 j 的const 限制
但是这没有限制 i , i 是可以被改的。除非 i 前面也加const
j 是“指向对象和值都不能更改的int指针”,但 i 的值还是能改的……