In Technologiestudiengängen gibt es Konzepte und Themen, die den Studierenden im Allgemeinen Angst machen. Einige der Hauptbeispiele sind Themen im Zusammenhang mit objektorientierter Programmierung und Analysis, ein anderes Beispiel sind einige grundlegendere abstrakte Begriffe Funktionen wie Zeiger, hauptsächlich in C, sind das Thema dieses Artikels.
Im Gegensatz zu uns kennen Computer bestimmte Informationen nicht anhand einer „Beschriftung“ oder eines „Namens“, sondern anhand der Adresse, an der sich diese Daten im Speicher befinden. Wir können uns den Speicher als eine Reihe von „Zellen“ vorstellen, die eine Reihe von Bits enthalten, die 0 oder 1 speichern, und jede Zelle ist einer bestimmten Adresse zugeordnet, an der sie einige Informationen speichert, damit von der Maschine ausgeführte Programme auf diese Daten zugreifen und sie manipulieren können Es. .
Wenn man bedenkt, dass ein Programm, um Daten nutzen zu können, seine Adresse im Speicher kennen muss, können wir uns das Konzept eines Zeigers vorstellen. Der Zeiger ist eine Variable, die auf andere Daten „zeigt“. Es ist, als wäre er ein Speicherplatz im Speicher, der die Adresse einer anderen Variablen oder Informationen speichern soll, damit diese manipuliert werden können.
Aber jetzt stellt sich die Frage: Was nützt ein Zeiger? Der Zeiger ermöglicht einige komplexere Operationen, die den Speicher betreffen, wie z. B. die dynamische Zuweisung mit Malloc oder die Erstellung komplexerer Datenstrukturen usw. Darüber hinaus gibt es einige Details, die den Schülern zunächst nicht so leicht auffallen, wie zum Beispiel die Tatsache, dass der Name eines Vektors ein Zeiger ist. Das ist richtig, ein Vektor ist nichts anderes als ein „fester Zeiger“, der auf eine bestimmte Position im Speicher zeigt und den wir anhand des Index je nach Bedarf manipulieren können.
Eine andere Verwendung ist die Manipulation von Daten durch Referenz, zum Beispiel: Übergeben eines Arrays als Parameter an eine andere Funktion, wodurch das ursprüngliche Array geändert werden kann, anstatt dass der übergebene Wert oder das übergebene Objekt nur eine Kopie ist, was beispielsweise in Javascript vorkommt, wo Es gibt kein Konzept für einen Zeiger (zumindest nicht explizit), zum Beispiel:
#includeint vet [5] ={10,20,3,4}; void somadez(int * ref){ for(int i=0;i Eine weitere nicht so offensichtliche Verwendung von Zeigern, dieses Mal für objektorientierte Sprachen, wo wir beispielsweise dynamische Objekte erstellen und die Arbeit mit Vererbung und Polymorphismus erleichtern können.
Wir haben dieses Beispiel unten mit C:
#includeusing namespace std; class Animal{ public: virtual void som(); }; class Cachorro : public Animal{ public: void som(){ cout som(); //neste caso podemos usar o ponteiro para acessar métodos e atributos de uma classe derivada. return 0; }
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3