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指针)相比)