gpt4 book ai didi

c - 堆栈(内存段)是否一直在不断地保存变量?

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

假设我正在编写一个 C 程序,它具有:

int a = 1;
int b = 5;
int *p = &a;

将:

int k = *(p+1);

总是给k = 5


正式地:

堆栈上变量地址的这个“连续”属性是否依赖于实现?如果不是,是否有任何保证(例如 &a < &b < &p )?

(这个在 ubuntu 上使用 gcc 的简单测试给出了 k=5 ,但是涉及不同类型的其他测试不起作用)

最佳答案

不... 尽管它可能会在大多数平台上出现 绝对不能保证您的代码会产生 5。您所拥有的是未定义的行为,这可能会导致你的程序cracking。永远不要依赖未定义的行为,句号。

关于c - 堆栈(内存段)是否一直在不断地保存变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21375820/

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