ob das geht, hängt m.w. vom unterstützten C-standard ab, aber da bin ich nicht so der auskenner.

der effekt ist aber, daß y auf den scope begrenzt ist, in dem es definiert ist, dh. außerhalb der for-schleife existiert es schlicht und einfach nicht, und beim nächsten schleifendurchlauf hast du quasi die nächste inkarnation davon.

in deinem beispiel ist es also so, daß der wert von y sofort wieder "vergessen" wird. beim nächsten durchlauf wird ein neues y angelegt; das heißt konkret (je nach implementation, optimierungseinstellungen etc), daß auf dem stack speicher reserviert wird oder ein register verwendet wird; höchstwahrscheinlich in jedem schleifendurchlauf dasselbe, dh es wird vermutlich im nächsten schleifendurchlauf der alte wert wieder auftauchen, aber wenn du dich darauf verläßt, hast du es verdient, daß dein programm unreproduzierbar abstürzt und du ein paar nachschichten zum debuggen brauchst

cm.