![]() |
#2
奇点点2022-09-14 11:05
|
代码运行没有报错, 只是报警告了, 因为我用普通指针指向常量了.
截图:
代码:

#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;
}
#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
运行结束。
/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
运行结束。