gpt4 book ai didi

c - 由初始化列表初始化的数组存储在哪里?

转载 作者:太空狗 更新时间:2023-10-29 14:56:53 24 4
gpt4 key购买 nike

给定这段代码:

(void)someFunction(void) {
int array[] = {1,2,3,4,5,6,7,8,9,10};
}

数组的值存储在哪里?

  • 堆栈?
  • 堆?
  • 连同那些字符串文字。 (是不是叫高频堆?)
  • 其他地方?

我问是因为我不确定这个问题:

Create an array of integers property in objective-c

最佳答案

数组本身将在堆栈上。函数入口处会有一些代码,将存储在全局/静态内存区域中某个未命名数组中的值复制到堆栈上的本地数组中。具有初始值的未命名全局/静态数组可能与字符串文字位于同一通用内存区域。

但是请注意,这些都不是标准所要求的 - 但几乎所有编译器都会实现它。足够聪明的编译器可能会注意到这些值只是递增的整数值,并且可能会生成一个循环来初始化本地数组,

(这个答案假设使用 C/C++——我不知道 Objective-C 是否会改变这些)。

关于c - 由初始化列表初始化的数组存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476961/

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