int age = 39;
int a = 34;
//第一种用法适合于保护age的值不被修改。
const int *pt = &age; //定义一个指针常量,不能用pt修改age的值,但可以改变pt指向的地址。pt = &a;
//*pt = *pt + 5; 错误的做法,*pt是一个常量,
//第二种用过,保护pt指向的地址不被修改。
int * const pt = &age; //合法用过,修改了pt指向的地址。
//pt = &a; 非法操作,试图修改pt指向的地址。
age = 90;
*pt = *pt + 3; //可以修改*pt的值,age的值也跟着改变。
//第三种 以上两者都不能改变。
const int *const pt = &age; //指向常量的常指针,不能修改pt的地址和指向的常量值。
printf("%d\n", *pt);
printf("%d\n", age);
引用于指针的不同
1 表示方式不同
2 声明引用时必须进行初始,而不能像指针那样可以先声明再赋值。