¿Cuál es la diferencia entre automático y registro?
La inicialización solo se usa dentro del bloque de declaraciones y puede ser cualquier expresión. Su característica es que cuando el flujo de ejecución ingresa al bloque de declaraciones, la inicialización puede ser cualquier expresión.
El lenguaje C proporciona cuatro categorías de almacenamiento, que se describen mediante los descriptores de almacenamiento automático, registro, externo y estático. Estos cuatro descriptores de clases de almacenamiento tienen dos tipos de ciclos de almacenamiento: automático y estático.
Los registros automáticos y corresponden a plazos de conservación automáticos. Una variable con duración de almacenamiento automático se crea al ingresar al bloque de código en el que se declara, existe mientras el bloque de código está activo y se destruye cuando se sale del bloque de código.
Las variables definidas dentro de las funciones serán localizadas. En algunos libros de texto de C, las variables locales se denominan variables automáticas, lo que coincide con el uso de la palabra clave auto opcional para definir variables locales.
Extensión:
C
Auto se interpreta como la palabra clave para almacenar variables automáticamente, es decir, afirmar una memoria de variables temporal.
Por ejemplo: 1? auto?double?a=3.7;
significa que a es una variable temporal almacenada automáticamente.
Lenguaje C++
C++ 98 Estándar/C++ 03 Estándar
Tiene exactamente el mismo significado que el lenguaje C: auto se interpreta como la palabra clave de la variable de almacenamiento automático. , es decir, afirma una memoria de variable temporal.
Estándar C++ 11
En la sintaxis del estándar C++ 11, auto se define para inferir automáticamente el tipo de una variable. Por ejemplo:
auto x=5.2;//Aquí x se infiere como tipo doble mediante auto
map
for( auto it=m.begin();// Aquí auto lo infiere como map
it!=m.end();++it)
{
//....
}Sin embargo, la palabra clave auto de C++11 viene con una restricción, es decir, la variable declarada debe tener un Valor inicial; de lo contrario, el compilador informará un error durante la fase de compilación.
Referencia: Enciclopedia Baidu-auto