gpt4 book ai didi

c++ - C++ 循环内定义的局部变量

转载 作者:可可西里 更新时间:2023-11-01 17:42:01 28 4
gpt4 key购买 nike

在下面的一段C++代码中:

    for (int i=0; i<10; i++)
{
int y = someFunctionCall();

//Some statements
}

变量 (y) 是在每次循环迭代时分配,然后在迭代完成时取消分配,还是为所有循环迭代分配一次?

提到的代码是否等同于以下代码?:

    int y;
for (int i=0;i<10;i++)
{
y = someFunctionCall();

//Some statements
}

最佳答案

它会在调用函数时在堆栈上分配一次。在性能方面,这两种方式之间没有区别(但回想一下,在最后一种方式中,y 仍将在循环后的范围内)。变量似乎在每次迭代之间创建和销毁(因此它在迭代之间“丢失”其值)是编译器创建的一种行为;实际内存位置始终相同。

关于c++ - C++ 循环内定义的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446586/

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