因此,根据我在C中所知,任何被引用的东西都必须存储在内存中的某个地方。存储在堆中的变量可以超过其函数调用后的生存期。但这里有一个在for循环中定义的整数的平凡例子,它的值在某个点上被外部的数组引用
如果我们打印出数组,我们会得到0,1,2…7。这些单独的整数存储在哪里?如果每个数组索引都在引用相同的"int i",那么它们都是相同的数字。但如果每个int都是自己的单个内存单元,这意味着所有int都会在某个时刻保存到内存中?
int main(){
int arr[8];
for (int i = 0; i<8; i++){
arr[i] = i;
}
return 0;
}
这些值存储在数组arr
中。
在int arr[8]
行中,您说"保留足够的内存来存储八个整数"。然后,当您进入循环时,您将把循环计数器i
的值分配到每个位置。在这个赋值操作之后,i
的值是什么并不重要,因为该值已经在arr
数组中了。在您发布的示例中,没有任何内容访问循环范围之外的值i
。