Ich versuche eine Funktion zu schreiben, die den Bildschirm in meinem einfachen C-Snake-Spiel ändert.
%Vor%Funktion:
%Vor%Dieser Code aktualisiert den Code nicht, er wird weiter ausgeführt. Was ist falsch an meinem Code?
C ist eine Sprache nach Wert. Der einfachste Weg, um das zu erreichen, was Sie wollen, ist, einen Verweis auf die Variable zu übergeben, die Sie ändern müssen. Zum Beispiel:
%Vor%Hinweis: Möglicherweise müssen Sie die Zeiger nachlesen, um den Code vollständig zu verstehen, wenn Sie gerade mit der C-Programmierung beginnen. Im Beispielcode übergeben Sie den Wert von "stage" an Stelle, wo der Wert von stage gespeichert wird. Die Funktion kann dann den Inhalt des Standorts ändern.
C-Funktionsargumente sind pass-by-value. Dies bedeutet, dass Sie anstelle eines Verweises an stage
den darin gespeicherten Wert übergeben. Das Update, das Sie in changeStage
ausführen, gilt nur für die Kopie, die erstellt wurde.
Wenn Sie eine Variable in einer anderen Funktion aktualisieren möchten, müssen Sie einen Zeiger darauf übergeben.
%Vor% &stage
sagt, dass Sie die Adresse von stage
übernehmen und an die Funktion übergeben sollen. Das Argument stage_p
zeigt dann auf das int im Hauptverzeichnis.
*stage_p
bewirkt, dass es den Wert verwendet, auf den stage_p
zeigt, was in Ihrem Fall stage
ist.
Sie ändern nicht die ursprüngliche stage
Variable, sondern nur eine lokale Kopie in changeStage
function.
Sie müssen einen Zeiger verwenden:
%Vor%mit der Funktion:
%Vor%Sie müssen mehr grundlegende Konzepte der C-Sprache lernen. Zeiger ist ein sehr wichtiges Merkmal in der Sprache C.
Tags und Links c