Las variables no son realmente "creados" o "destruido". Son conceptos en el nivel de abstracción del lenguaje de programación. No es necesario que el compilador tenga un mapeo uno a uno entre una variable y direcciones de memoria. En la práctica, la mayoría de las veces, el espacio de pila para las variables locales se asigna de una vez al comienzo de la función, por lo que no hará una diferencia en el rendimiento.
Tenga en cuenta que C++, a diferencia de C, que no tiene una noción de constructores, admite la construcción y destrucción de objetos, por lo que si definiera una variable de un tipo de clase en un ciclo for, como el siguiente,
class MyClass {
public: MyClass() { cout << "hello world" << endl; }
};
//...
for (int i = 0; i < 10; ++i) {
MyClass m;
}
llamarías a su constructor cada vez, imprimiendo "hola mundo" diez veces. Esto es muy diferente de las declaraciones C y no debe confundirse con él.
Gracias, quise decir es la memoria reasignada en cada iteración. He cambiado la pregunta. –