- //int *pi指针指向const int i常量的情况
- const int i1 = 40; //const限定变量不允许被改变。
- int *pi;
- pi = &i1; //你把const int * 给 int *所以会警告。 pi地址指向了i1地址
- printf("i的地址是%p pi的地址是%p\n",&i1,pi);
- printf("%d\n",*pi);
- *pi=23; //赋值,是不会改变地址的。
- printf("i的地址是%p pi的地址是%p\n",&i1,pi);
-
- printf("*p=%d i1=%d\n",*pi,i1); //同理因为const所以输出*p=23, i1=40;
- //这应该是C语言的一种机制吧,如果可以通过指针修改值,就没有const的必要了。不加const就可以输出i1=23;
复制代码 |