鉴于这段代码:
(void)someFunction(void) { int array[] = {1,2,3,4,5,6,7,8,9,10}; }
数组的值存储在哪里?
堆?
堆?
连同那些字符串文字.(它被称为高频堆吗?)
别的地方?
我问,因为我对这个问题不确定:
在objective-c中创建一个整数属性数组
数组本身将在堆栈中.进入函数时会有一些代码将存储在全局/静态存储区中某些未命名数组中的值复制到堆栈上的本地数组中.具有初始值的未命名全局/静态数组可能与字符串文字位于相同的一般内存区域中.
但请注意,标准不需要这样做 - 但它几乎是任何编译器实现它的方式.一个足够聪明的编译器可能会注意到这些值只是递增的整数值,可能会产生一个循环来初始化本地数组,
(这个答案假设C/C++ - 我不知道Objective-C是否会改变这一点).