<分区>
我的代码:
#include <stdio.h>
main()
{
const int x = 10;
int *p;
p=&x;
*p=20;
printf("Value at p: %d \n",*p);
printf("Value at x: %d", x);
}
我得到的输出是:
Value at p: 20
Value at x: 20
因此,常量变量的值发生了变化。这是使用指针的缺点之一吗?
<分区>
我的代码:
#include <stdio.h>
main()
{
const int x = 10;
int *p;
p=&x;
*p=20;
printf("Value at p: %d \n",*p);
printf("Value at x: %d", x);
}
我得到的输出是:
Value at p: 20
Value at x: 20
因此,常量变量的值发生了变化。这是使用指针的缺点之一吗?
最佳答案
您使用 int*
指向 const
int。你应该得到:
error: invalid conversion from ‘const int*’ to ‘int*’
当你这样做时:
p = &x;
你可能需要更新你的编译器,一个好的编译器应该告诉你这个错误或者至少给你警告。
关于c - 为什么我可以在这里更改 const int 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16390870/