#include <stdio.h>
/*如果const读作常量 *读作指针,那么const在*左边就是常量指针,const在*右边就是指针常量*/
int main()
{
/*常量指针是指针指向的内容是常量*/
/*常量指针不能通过这个指针改变变量的值 ,但是还是可以通过其他引用来改变变量的值*/
int a = 5;
const int* n = &a;
printf("n = %d \n", *n);
printf("a = %d \n", a);
a = 6;
printf("n = %d \n", *n);
printf("a = %d \n", a);
printf("//\n");
/*常量指针指向的值不能改变,但是这并不是意味着指针本身不能改变,常量指针可以指向其他的地址*/
int c = 6;
int d = 7;
const int* m = &c;
printf("c = %d \n", c);
printf("m = %d \n", *m);
m = &d;
printf("m = %d \n", *m);
printf("c = %d \n", c);
printf("//\n");
/*指针常量是指指针本身是个常量,不能再指向其他的地址*/
/*指针常量指向的地址不能改变,但是地址中保存的数值是可以改变的,可以通过其他指向改地址的指针来修改*/
int e = 5;
printf("e = %d \n", e);
int *p = &e;
printf("p = %d \n", *p);
int* const q = &e;
printf("q = %d \n", *q);
printf("e = %d \n", e);
*p = 6;
printf("q = %d \n", *q);
printf("e = %d \n", e);
printf("p = %d \n", *p);
return 0;
}
运行结果: