gpt4 book ai didi

c - C中如何存储变量值?

转载 作者:行者123 更新时间:2023-12-03 17:44:43 26 4
gpt4 key购买 nike

假设我有以下 C 代码:

int x= 4;
int y = x;
printf("x:%d,y:%d\n",x,y);
X 现在引用存储 '4' 的内存位置并打印为 4。y 引用 x 所以它也会打印 4。那么为什么当我改变 x 的值时,例如 x=6; , y 也没有改变?我一定是误会了什么。所有语言都一样吗?
我在任何地方都找不到我的问题的答案(可能是因为措辞不当)。

最佳答案

你的理解是完全错误的。
当你写 int x = 4; , x表示堆栈上的实际内存位置,然后填充值 4 . x与那段内存不可撤销地联系在一起 - 当 x超出范围内存也会消失。
当你写 int y = x;再次y代表一段实际的内存。它不“引用”到 x ,而是 x 的内容被复制到 y .

Is it the same for all languages?


不,不同的语言可以而且确实具有完全不同的语义。然而,C 的做法通常被称为值语义。

关于c - C中如何存储变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66126121/

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