25/05/2006, 17:24
|
| | Fecha de Ingreso: abril-2006 Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses Puntos: 2 | |
No lo creo No creo que tenga sentido usar una variable static, dentro de main.
ya que es muy raro llamar desde otra funcion a main, solo que el SO lo haga, o desde otra aplicacion, pero dudo que de una ejecucion a otra el valor de la variable static se conserve.
tu en realidad te refieres a una constante.
const int i = 0;
i siempre sera i y no podra modificarse.
static int i = 0;
i si se puede modificar.
static tienen dos funciones, como especificador de ambito y de almacenamiento(vida).
En ambito:
static es lo contrario a extern.
En almacenamiento:
static es lo contrario a auto.
en realidad el funcionamiento de static como especificador de almacenamiento, es muy similar auna variable global.
Ejemplo:
int acum = 0;
int acumulado(int val)
{
return acum += val;
}
int main()
{
for(int i = 1; i <= 10; i++)
cout << acumulado(i) << endl;
return 0;
}
este pequeño programa te mostraria la suma de los 10 primeros digitos.
si la funcion fuera esta:
int acumulado(int val)
{
int acum = 0;
return acum += val;
}
la funcion retornaria solo el valor de val + 0;
para solucionar el problema sin usar variables globales hariamos:
int acumulado(int val)
{
static int acum = 0;
return acum += val;
}
acum se crea antes de main y se destruye una vez terminada main, por tanto iría conservando el valor de la suma.
si intentaras hacer esto:
int acumulado(int val)
{
const int acum = 0;
return acum += val;
}
no te compilaria, o te daria error en la ejecucion.
Saludos. |