相同的指针 同时指向不同的值 ?
我做了一个实验, 用一个普通指针指向一个常量, 然后通过指针修改了常量的值, 然后分别访问指针指向的值和常量原值, 竟然是不同的, 但是他们的地址却是相同的, 请高人指点.代码运行没有报错, 只是报警告了, 因为我用普通指针指向常量了.
截图:
代码:
程序代码:#include <stdio.h>
#include <stdlib.h>
int main(void) {
const int a = 10;
int* pa = &a;
*pa = 100;
printf("%d, %d\n", a, *pa);
printf("%p,%p\n", &a, pa);
return 0;
}
运行结果
程序代码:开始运行...
/workspace/CProject1/main.c:7:10: warning: initializing 'int *' with an expression of type 'const int *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
int* pa = &a;
^ ~~
1 warning generated.
10, 100
0x7ffed0567e58,0x7ffed0567e58
运行结束。



