【发布时间】:2020-03-09 00:48:01
【问题描述】:
所以据我所知,任何被引用的东西都必须存储在内存中的某个地方。 存储在堆中的变量可以超过其函数调用后的生命周期。 但这里有一个在 for 循环中定义的整数的简单示例,它的值在某个点被它外部的数组引用。
如果我们打印出数组,我们会得到 0,1,2...7。 这些单独的整数存储在哪里?如果每个数组索引都在引用 相同的“int i”,那么它们都是相同的数字。但是如果每个 int 都是它自己的 单个内存单元,这是否意味着所有整数都在某个时候保存到内存中?
int main(){
int arr[8];
for (int i = 0; i<8; i++){
arr[i] = i;
}
return 0;
}
【问题讨论】:
-
C 有值语义;赋值运算符意味着将右侧的值复制到左侧指示的内存位置。这不是建立某种公式或等价性
标签: c for-loop local allocation