Ponieważ w miejscowym deklaracji
char Var=Var;
prawo występowanie Var
odnosi się do lokalnego Var
, a nie górna. Jak skomentował Alk, jest to undefined behavior, aby przypisać z niezainicjowanej zmiennej.
Twoja deklaracja nie inicjuje w ogóle Var
, tj. Var
zawiera śmieci. W tym konkretnym przypadku śmieci te mają wartość 0.
BTW, mając dwie homonimy Var
w tej samej funkcji jest naprawdę złym smakiem.
Zgodnie z sugestią this answer, powinieneś skompilować się z gcc -Wall -Wshadow
, a następnie otrzymasz ostrzeżenia na swoim kodzie. (Również dodać -g
uzyskać informacje debugowania, aby móc debugować z gdb
)
'= Var' już odnosi się do' char Var'. – Pietu1998
Teraz chciałbyś przeczytać: [Punkt deklaracji w C++] (http://stackoverflow.com/questions/15746271/point-of-declaration-in-c#), ale jest to link C++ –
[Point of Declaration ] (http://msdn.microsoft.com/en-us/library/179x7xb9.aspx) –