Dans mon esprit, toujours, de la définition des moyens d'allocation de stockage.
Dans le code suivant, int i
alloue un 4 octets (généralement) de stockage sur la pile de programme et de le lier à l' i
, et i = 3
assigne 3 de stockage. Mais à cause de l' goto
, la définition est annulée, ce qui signifie qu'il n'est pas de stockage alloué pour i
.
J'ai entendu dire que les variables locales sont affectés soit à l'entrée de la fonction (f()
dans ce cas) où ils résident, ou au point de définition.
Mais de toute façon, comment peut - i
être utilisée tant qu'elle n'est pas encore définie (pas de stockage à tous)? D'où vient la valeur de trois attribué lors de l'exécution d' i = 3
?
void f()
{
goto label;
int i;
label:
i = 3;
cout << i << endl; //prints 3 successfully
}