先看如下代码:
1 #include <stdio.h>
2
3 int main()
4 {
5 const int a=3;
6 int* p=&a;
7 *p = 4;
8 printf("*p:%d\n",*p);
9 printf("a:%d\n",a);
10 return0;
11 }
运行结果:
*p:4
a:3
也就是说const修饰的变量,只是说不能通过该变量来修改这个值,但是可以通过其它方式来修改这个值,但是即使修改后,再打印a,它依然是原来的值。
虽然此处const确实体现它只读的效果,有没有感觉很奇怪,*p与a应该是同一块内存单元,但是通过他们打印的值却不同,望高手指点。