gpt4 book ai didi

c - 为什么有时可以修改 const 对象有时不能?

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:30 24 4
gpt4 key购买 nike

我有两段代码试图修改只读位置的值。其中之一是抛出错误。

1stcode.c

void main()
{
int const k=9;
int *p=&k;
*p=10;
printf("%d",k);
}

第二个代码.c

void main()
{
int const * p=5;
printf("%d",++(*p));
}

这里 1stcode.c 允许我简单地修改只读内存位置,但是 2ndcode.c 抛出错误:

error: increment of read-only location '*p'

为什么两个位置都是只读的?

最佳答案

如果您将编译器警告级别调高,第一个示例也将无法编译。


另请注意,在第二个示例中,您声明了一个指向地址 5 的指针,它不会做任何有用的事情。

关于c - 为什么有时可以修改 const 对象有时不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com