C 指向常量数据的常量指针合法吗?

C 指向常量数据的常量指针合法吗?,c,C,代码int const*const pointer1=&constantVariable法律 如果不是,正确的指定方式是什么?没关系! 在int const*const pointer1=&constantVariable中,第一个const表示无法通过*pointer1更改值;第二个const表示指针本身(地址)的值也不能更改。实际上,指针1可以指向一个常量整数,甚至是一个普通变量,但不能设置两次 你是说int*const*pointer?(还有,constantVariable是如何声明的?

代码
int const*const pointer1=&constantVariable法律

如果不是,正确的指定方式是什么?

没关系!
int const*const pointer1=&constantVariable
中,第一个
const
表示无法通过*pointer1更改值;第二个
const
表示指针本身(地址)的值也不能更改。实际上,指针1可以指向一个常量整数,甚至是一个普通变量,但不能设置两次

你是说
int*const*pointer
?(还有,
constantVariable
是如何声明的?)我不确定;也许这是实现我所尝试的合法途径。这要看情况而定
int*const*指针
有两级间接寻址(如
int**a;
)。如果
constantVariable
本身不是指针,则
int*const*指针
是错误的。在这种情况下,您需要
int*const指针
。(例如,
const int i=5;int*const p=(int*const)&i;
(它是指向const int的指针)与
const int*p=&i;
(一个const int指针)相比)