gpt4 book ai didi

c - 函数参数的内存位置

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:37 25 4
gpt4 key购买 nike

我正在准备我的 UNIX 考试,有一个关于 C 变量的内存位置的问题。假设我们有这样的代码

char sth;
int some_function(int arg) {
int some_int;
// some code here
}

所以我想 sth 位于堆上,some_int 位于堆栈上,但是 arg 位于何处?有人可以解释一下 C 变量是如何管理的吗?

谢谢

最佳答案

请注意,这一切都取决于实现。 C 标准甚至没有说出堆栈、堆等词。它只是讨论根据变量的存储(staticexternregister 等)期望的变量行为。

话虽如此,通常 arg 将位于为函数提供的堆栈帧中。它的范围仅限于函数,就像 some_int 的范围一样。

顺便说一句,sth 不在堆上,它有一个静态的全局存储。

关于c - 函数参数的内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8825104/

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