#include <stdio.h>
int main(void){
long value=8888L;
const long *pvalue=&value;
value=7777L;
printf("%d %d",*pvalue,value);
}
long value=9999L;
const long *pvalue=&value;
声明指针时候可以使用const关键字指定,该指针指向的值不能被改变;
把pvalue指向的值声明为const,所以编译器会检查是否有语句试图修改pvalue指向的值,并将这些语句标记为错误;
列如下面的语句会让编译器成一条错误信息
*pvalue=888L;应为pvalue指向的值不能被修改,但可以对value进行任意操作;
value=7777L;
改变了pvalue指向的值,但是不能使用pvalue指针做这个改变,当然指针本省不是常量,所以仍可以改变它指向的值
long number=8888L;
pvalue=&number;
这会改变指向number的pvalue中的地址,仍然不能使指针改变它指向的值
注意:可以改变指针中存贮的地址,但是不允许使用指针改变它指向的值。