C++ 中const 常变量的问题~~

2025-05-18 13:12:46
推荐回答(4个)
回答1:

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是个常量。

回答2:

const int *const j=&i;

指向常量的常指针,该指针是不能改变的,就是不能再改变该指针的指向,
如果指向非const变量,则可通过指针改变变量的值,所以 i = 39;是可以执行的。

回答3:

const int *const j=&i;

意思是 j 是指向不能改,也不能改变j 指向的值。
所以 j =&x 是错的。
*j = 5 是错的。
以上 都是 对 j 的const 限制
但是这没有限制 i , i 是可以被改的。除非 i 前面也加const

回答4:

j 是“指向对象和值都不能更改的int指针”,但 i 的值还是能改的……