Während Sie die Variable nicht initialisiert haben, bezieht sich die Variable auf den Speicherort im Speicher.
Wert dieser Stelle ist, wenn sie integer umgewandelt etwas ergeben würde, und in Ihrem Fall ist es -28762
Bitte beachten Sie, dass, wenn Sie einfache Datentypen wie int deklarieren, schwimmen etc dies geschieht.
Für komplexe Typen wie benutzerdefinierte Typen und Strukturen wird dies nicht passieren.
Die Integer-Variablen werden nicht auf Null gesetzt, es sei denn, sie sind Dateibereich oder statisch. Siehe Referenzverbindung https://msdn.microsoft.com/en-us/library/y2xtdbay.aspx
Wenn die Erklärung der z für eine nicht initialisierte statische Variable ist, oder am Umfang Datei war, würde es einen Anfangswert von 0 erhalten, und dieser Wert wäre nicht änderbar.
Nicht definiertes Verhalten ist undefiniertes Verhalten. Sie müssen "a" auf einen Wert initialisieren. –
Verwenden Sie kein TurboC. Es implementiert eine veraltete Variante von C (oder C++, mit TurboC++). Verwenden Sie neuere standardkonforme Compiler (zB [GCC] (http://gcc.gnu.org/) oder [Clang] (http://clang.llvm.org/) ...) und aktivieren Sie alle Warnungen und Debug-Informationen (zB kompilieren Sie mit 'gcc -Wall -Wextra -g', das Sie gewarnt hätte). Beachten Sie, dass Ihr Programm falsch ist (da "main" nicht als "void" -Funktion deklariert werden sollte). –