Ein Zeiger ist ein Variablentyp, der eine Speicheradresse speichert. Sie können wie jede andere Variable einen Gültigkeitsbereich haben. Eine globale Variable ist eine Variable mit globalem Gültigkeitsbereich, dh sie kann von überall aus aufgerufen werden.
Nur weil ein Zeiger global ist, heißt das nicht, dass die Daten im Speicher global sind. Wenn die Daten im Speicher unbrauchbar sind und nicht in den Gültigkeitsbereich fallen (z. B. von einer if
Anweisungsendung oder einer function
Endung), zeigt der Zeiger nun auf wiedergewonnenen Speicher, und der Wert an dieser Speicheradresse ist unvorhersehbar.
Wenn überhaupt, werden Zeiger normalerweise verwendet, um lokale Variablen ohne zu teilen, die eine globale Variable erstellen. Stattdessen übergeben Sie nur den Zeiger an Funktionen, die Sie möchten, um den Wert mit zu teilen.
Sie sind völlig separate Konzepte. Das eine ist ein Konzept der Erinnerung und das andere ist ein Konzept des Umfangs. – 4castle
@ 4castle Sie sollten das in eine Antwort umwandeln und darauf eingehen - ich vermute, dass der OP den Unterschied zwischen den beiden vielleicht nicht versteht. – templatetypedef
Hier ist eine sehr gute Antwort: http://stackoverflow.com/questions/1892198/whats-the-difference-between-pointers-and-global-variables-in-c –