也可以声明一个指向非常量的常量指针。这么做意味着指针不可变,但是它指向的数据可变。下面是这种指针的例子;
有了这个声明:
cpi
必须被初始化为指向非常量变量;cpi
不能被修改;cpi
指向的数据可以被修改。
从原理上说,这类指针可以用图1-13来说明。
无论cpi
引用了什么,都可以解引cpi
然后赋一个新值。下面是两条合法的赋值语句:
然而,如果我们试图把cpi
初始化为指向常量limit
,如下所示:
那么就会产生一个警告:
如果这里cpi
引用了常量limit
,那常量就可以修改了。这样不对,因为常量是不能被修改的。
在把地址赋给cpi
之后,就不能像下面这样再赋给它一个新值了:
如果采用这种做法会产生如下错误信息: