Über den Wert erster, zweiter und dritter Klasse

Erste Klass value kann @ se

als Argument übergeben von einem Unterprogramm zurückgekehrt Einer Variablen zugewiesen.

Zweite Klass value kann nur als Argument übergeben werden.

Dritte Klass value kann nicht einmal als Argument übergeben werden.

Warum sollten diese Dinge so definiert werden? Wie ich verstehe, bedeutet "als Argument übergeben werden", dass es in den Laufzeitstapel verschoben werden kann, "in eine Variable zugewiesen werden kann", dass es an einen anderen Speicherort verschoben werden kann. "kann von einem Unterprogramm zurückgegeben werden" hat fast die gleiche Bedeutung wie "kann einer Variablen zugewiesen werden", da der zurückgegebene Wert immer an eine bekannte Adresse gesendet wird, sodass der Wert der ersten Klasse vollständig "beweglich" oder "dynamisch" ist, zweite Klasse value ist zur Hälfte "beweglich" und value der dritten Klasse ist nur "statisch", z. B. Labels in C / C ++, die nur mit goto-Anweisung adressiert werden können, und mit dieser Adresse können Sie nichts außer "goto" tun Verständnis macht Sinn? oder was bedeuten diese drei Arten von Werten genau?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage