gpt4 book ai didi

c - 由于变量导致的内存添加是在 while 循环中初始化的

转载 作者:行者123 更新时间:2023-11-30 19:20:10 24 4
gpt4 key购买 nike

例如:

 int i=0;
while (i<10000)
{
int j;
i++;
}

j 会占用 10000 个不同的内存位置,还是会在同一内存位置或一个特定内存位置进行销毁和构造?

最佳答案

有两种情况:

整个循环将被优化,编译器实际生成的代码将相当于

int i = 10000 ;

编译器不会优化 while 循环,并且 j 将被“创建”10000 次。我将“created”放在引号之间,因为 j 实际上没有创建,也没有删除,它只是存在,是的,它通常总是位于相同的内存位置,除非您有一个非常不寻常的 c 编译器。

您可以通过将 printf ("%p\n", &j) ; 放入循环内来检查这一点。这将打印 j 变量的内存地址。

关于c - 由于变量导致的内存添加是在 while 循环中初始化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916769/

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