课前了解 :指针是一个变量如 char * c
c本身就是一个变量,c的值是一个内存地址,通过此地址可以获得值
因c也是一个变量,那c也应有个地址 &c即为二级指针
1 常量指针
int a=6;
int b=5;
const int * c=&b;
c=&a;(正确)
(*c)=8;(错误)
首先它是一个指针,c的值可以变,但c的值(即内存地址)所对应的内容不可改变,但间接方式也是可以改变的如上例子
加上一句 b=3; 则 (*c)值为3 所以只能说不能通过c来直接改变该内存的内容(值)如 (*c)=3 就是错的
2 指针常量
int a=6;
int b=5;
int * const c=&b;
c=&a;(错误)
( *c)=8;(正确)
首先它是一个常量,所以c的值不可以改变,即内存地址不可改变,但内存对应的内容(值)是可变的