相同的指针 同时指向不同的值 ?
我做了一个实验, 用一个普通指针指向一个常量, 然后通过指针修改了常量的值, 然后分别访问指针指向的值和常量原值, 竟然是不同的, 但是他们的地址却是相同的, 请高人指点.代码运行没有报错, 只是报警告了, 因为我用普通指针指向常量了.
截图:
代码:
程序代码:
#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 运行结束。