int a = a ;
Zgodnie z zasadą operatora przypisania, powinien przeczytać wiersz od prawej do lewej. Po zobaczeniu "niedeklarowanego" kompilatora powinien dać błąd kompilacji.
Ale it is giving garbage value
. Wyjaśnij to.Dlaczego to nie powoduje błędu kompilacji?
Czy nie pozwoliłoby na zadeklarowanie "a" - ze śmieciami - i prawdopodobnie wydrukowanie tych śmieci? Również w oparciu o twoją logikę nic nie mogłoby być przypisane w deklaracji. 'int a = 1;' zakończyłoby się niepowodzeniem, ponieważ zadanie "czyta od prawej do lewej", a zatem "a" jest niezadeklarowane; Nie? – ChiefTwoPencils
to ta sama wartość śmieci, która była w 'a', od początku, ponieważ nigdy nie zainicjowałeś' a'. – dandan78
możliwy duplikat [to samo inicjalizacja "A a = a;" dozwolone?] (http://stackoverflow.com/questions/981714/is-self-initialization-aaa-allowed) Również tutaj: http://stackoverflow.com/questions/3173462/int-var-1-void-main -int-ii – jogojapan