Es sind ganz unterschiedliche Tiere. Um das besser zu erklären, möchte ich beide definieren.
Zeiger:
Eine Variable enthält einen Teil der Daten. Ein Zeiger ist ein Datentyp, der auf einen anderen Speicherplatz verweist. Stellen Sie sich den Zeiger wie ein Schild vor, auf dem steht: "Da drüben ---->", das auf ein bestimmtes Objekt zeigt. Zum Beispiel sind Zeichenketten in C nur ein Zeiger auf ein Zeichen, und per Konvention weiß man, dass weitere Zeichen folgen, bis ein \0
Zeichen. C verwendet Zeiger ausgiebig, da es keinen anderen Mechanismus gibt, um gemeinsame Informationen zwischen Programmteilen auszutauschen, außer....
Globale Variablen:
In einem Programm haben Sie in jeder Funktion Variablen. Dabei kann es sich um die Parameter der Funktion und um Variablen handeln, die innerhalb der Funktion definiert sind. Darüber hinaus gibt es so genannte globale Variablen. In diesen Variablen werden Informationen gespeichert, auf die alle Funktionen in einer Datei zugreifen können. Dies kann nützlich sein, um Dinge wie einen globalen Status oder eine Konfiguration weiterzugeben. Zum Beispiel könnten Sie eine Variable namens debug
die Ihr Code prüft, bevor er Nachrichten ausgibt, oder um ein globales Zustandsobjekt zu speichern, wie den Spielstand in einem Videospiel.
Ich glaube, das verwirrt Sie: Beide können verwendet werden, um Informationen zwischen Teilen des Codes auszutauschen. Da Funktionsargumente übergeben werden nach Wert in C kann eine Funktion die Variablen des Aufrufers nicht verändern. Es gibt zwei Möglichkeiten, dieses Problem zu "beheben". Die erste (und korrekte) Möglichkeit besteht darin, einen Zeiger auf die Variable an die Funktion zu übergeben. Auf diese Weise weiß die Funktion, wo sie die Variable des Elternteils ändern muss. Ein anderer Ansatz besteht darin, eine globale Variable zu verwenden. Auf diese Weise werden keine Zeiger weitergegeben, sondern die globalen Variablen werden direkt bearbeitet.
Man kann also beide verwenden, um dasselbe zu erreichen, aber wie sie funktionieren, ist völlig unterschiedlich. In der Tat kann eine globale Variable ein Zeiger sein.