gpt4 book ai didi

c - const 不应该是常量吗?

转载 作者:行者123 更新时间:2023-12-04 10:46:56 24 4
gpt4 key购买 nike

检查这段代码

#include<stdio.h>

int main()
{

const int a=7;
int *p=&a;
(*p)++;
printf("*p=%d\np=%u\na=%d\n&a%u",*p,p,a,&a);
getch();
}

你得到的输出是

*p=8
p=1245064
a=8
&a1245064

这怎么可能??我们将变量 a 声明为常量。这是否意味着 a 指向的位置在 pgm 执行过程中永远不能更改??

最佳答案

这是未定义的行为 - 在您的情况下它按照您描述的那样工作,但它也可能使程序崩溃或导致任何其他问题。在您的情况下, const 不会阻止编译器在可修改内存中分配变量,因此从技术上讲,您可以通过获取指向该变量的指针并通过指针进行修改来修改它。

关于c - const 不应该是常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499958/

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