所以我在假期里一直在努力学习C语言.现在我遇到了const
个,所以我一直在玩弄它.过了一会儿,我发现了这一点
#include <stdio.h>
typedef struct StructA {
int* ptr;
} struct_a;
void modify(const struct_a value)
{
*value.ptr = 0;
}
int main()
{
int x = 5;
const struct_a y = { .ptr = &x };
printf("%d\n", x);
modify(y);
printf("%d", x);
return 0;
}
// Output:
// 5
// 0
我的一般 idea 是,虽然 struct 是常量,但指针所指向的值不是常量,因此可以修改它.有人能解释一下这里到底是怎么回事吗?
编辑:稍加修改