Pointers and Arrays in C
Ein kostenloses Video-Tutorial von Tim Buchalka's Learn Programming Academy
Professional Programmers and Teachers - 2.28M students
62 Kurse
2.365.286 Teilnehmer:innen
Steige mit dem kompletten Kurs tiefer ins Thema ein
C Programming For Beginners - Master the C Language
C Programming will increase career options. Become a better dev in other languages by learning C. Pointers explained
25:36:08 On-Demand-Video • Aktualisiert am Oktober 2026
Understand the fundamentals of the C Programming Language
Make yourself more marketable for entry level programming positions
Create your first C Application
Learn one of the most popular, widly used languages in the world
Understand variables and the different data types
Apply for real-time programming positions
Understand the core language that most modern languages are based on
Learn how to write high-quality code
Deutsch [autom.]
Hallo und willkommen zurück. In dieser Vorlesung möchte ich über die Beziehung zwischen Zeigern und Arrays sprechen. Es gibt eine starke Beziehung, und wir müssen diese Beziehung verstehen, bevor wir tatsächlich über Zeigerarithmetik sprechen können. Also lasst uns anfangen. Ein Array ist eine Sammlung von Objekten desselben Typs, auf die Sie mit einem einzigen Namen verweisen können. Wir wissen, dass wir mittlerweile ziemlich gut in Arrays sind. Wir verwenden das Zeichenarray jetzt seit einigen Abschnitten. Es ist ein Array, auf das Sie zugreifen können, indem Sie einen Index oder einen Index in diesen Klammern verwenden. Wir erinnern uns daran. Wir wissen, dass Arrays auf Null basieren und bei Null beginnen. Aber auch hier ist es nur eine Möglichkeit, mehrere Monate mit demselben Variablennamen zu halten. Ein Zeiger ist eine Variable, deren Wert eine Speicheradresse hat, und er kann auf eine andere Variable oder Konstante eines bestimmten Typs verweisen. Wir sollten an dieser Stelle auch ziemlich klar sein, was ein Zeiger ist. Es enthält nur eine Speicheradresse. Sie können einen Zeiger verwenden, um die Adresse verschiedener Variablen zu verschiedenen Zeiten zu speichern. Aber du musst den gleichen Typ haben. Ein int-Zeiger muss zeigen, um die Adresse eines int-Typs wiederherzustellen. Arrays und Zeiger scheinen sehr unterschiedlich zu sein, sind jedoch sehr eng miteinander verbunden und können manchmal austauschbar verwendet werden, insbesondere mit dem Zeichenarray. Sie können tatsächlich ein Zeichen erstellen, an das Sie sich erinnern, das eine Zeichenfolge ist, und Sie können einen Zeichenzeiger erstellen, der im Wesentlichen dasselbe ist. Es gibt nur geringfügige Unterschiede, ob Sie Speicher zuweisen oder mit einem Zeichenzeiger freigeben. Bei einem Zeichenarray müssen Sie das nicht tun, aber ein Zeichen a hat auch eine feste Größe. Wenn Sie also eine Zeichenarray-Zeichenfolge mit 20 als Größe erstellen, können Sie nur 19 Zeichen speichern. Mit dem Zeichenzeiger können Sie die dynamische Speicherverwaltung verwenden und die Größe erhöhen oder verringern. Dies kann hinsichtlich des Speichers effizienter sein. Eine der häufigsten Verwendungen von Zeigern in c sind jedoch Zeiger auf Arrays. In diesem Fall verwenden Sie am häufigsten Zeiger, insbesondere auf Zeichen. Der Zeichenzeiger entspricht einem Zeichenarray. Die Hauptgründe für die Verwendung von Zeigern zum Löschen sind die Bequemlichkeit der Notation und die Programmeffizienz. Sie können also in vielen Fällen entweder ein Array oder einen Zeiger verwenden, es sei denn, Sie sprechen von dynamischer Speicherverwaltung. Aber in den meisten Fällen können Sie. Und der einzige Unterschied ist die Syntax, die Notation. Es geht darum, ob Sie einen Index verwenden, um auf ein Element zuzugreifen, oder ob Sie Punktarithmetik verwenden, ob Sie den Zeichenzeiger verwenden, um auf die spezifische Adresse dieses Elements zu verweisen. Es ist auch effizienter, Zeichenzeiger zu verwenden. Zeiger auf Arrays führen im Allgemeinen zu Code, der weniger Speicher benötigt und schneller ausgeführt wird. Sie möchten also so viel wie möglich einen Zeiger für Zeichen und einen Zeiger auf andere Datentypen verwenden. Weil es schneller ist und weniger Speicher benötigt. Zeiger über Arrays zum größten Teil. Wenn Sie ein Array von 100 Ganzzahlen haben, wissen wir, was dies bedeutet. Sie sagen einfach, dass der int-Wert 100 ist. 100 ist die Größe. Das heißt, Sie können 100 Ganzzahlen in diesem Array speichern. Sie können auch einen Zeiger definieren. Wir werden es Wertezeiger nennen, da es auf das Werte-Array zeigt und es verwendet werden kann, um auf die in diesem Array enthaltenen Ganzzahlen zuzugreifen. Also sagen wir einfach Instar-Wertezeiger. Wir wissen, wie man an dieser Stelle einen Zeiger deklariert. Wenn Sie einen Zeiger definieren, der zum Zeigen auf die Elemente des Arrays verwendet wird, legen Sie den Zeiger nicht als Typzeiger auf das Array fest. Bis zu diesem Punkt haben wir nur von Zeiger auf Ende und Zeiger auf Doppel gehört. Wenn Sie jedoch Arrays verwenden, sagen Sie nicht spitzes Array. Dieser tatsächliche Zeiger zeigt auf ein bestimmtes Element, das im Array enthalten ist. Denken Sie also daran. Es ist nicht das gesamte Array, wenn Sie einen Zeiger mit der Adresse von Werten löschen. Um den Wertezeiger so zu setzen, dass er auf das erste Element des Wertearrays zeigt, müssen Sie nur sagen, dass Werte zeigen oder gleich Werte sind. Sie müssen die Adresse dort nicht eingeben oder so. Weil das Wertearray ein Zeiger ist. Das ist es, was Sie in Ihrem Kopf fahren müssen, all diese Arrays sind Zeiger unter der Motorhaube. Wenn Sie also einem Zeiger das erste Element eines Arrays zuweisen möchten, müssen Sie nur das Array auf der rechten Seite des Gleichheitsoperators angeben und auf der linken Seite haben Sie nur den Wertezeiger. Dies zeigt auf die erste Adresse im Array oder das erste Element. Der Adressoperator wird nicht verwendet. Beachten Sie dies. Der c-Compiler behandelt das Erscheinungsbild eines Array-Namens ohne Index als Zeiger auf das Array. Wenn Sie also Werte ohne Index angeben, wird ein Zeiger auf das erste Werteelement erstellt. Dies bedeutet, dass Sie jetzt auf nachfolgende Werte im Array verweisen können, indem Sie einfach den Zeiger erhöhen, um zur nächsten Adresse zu gelangen. Und darüber werden wir in den nächsten Vorträgen sprechen, wenn wir über Punktarithmetik sprechen. Und es ist wirklich nur eine Notationssache und es ist auch eine Effizienzsache. Eine äquivalente Möglichkeit, einen Zeiger auf den Anfang von Werten zu erzeugen, besteht darin, die Adresse des Operators auch auf das erste Element von rechts anzuwenden. Sie können es also auf zwei Arten tun, beide Wege sind in Ordnung. Sie können dies aber auch tun. Man könnte Wertezeigeradresse mit einem Wert unter Null sagen. Dadurch wird der Wertezeiger auf das erste Element im Array gesetzt. Sie können also diesen verwenden oder einfach sagen, dass Werte Punkt gleich Wert sind. Ohne das kaufmännische Und und ohne den Index ist es natürlich etwas weniger Code oder einfacher zu schreiben. Dies ist möglicherweise etwas klarer, da Sie nicht unbedingt wissen, dass Werte ein Array sind, es sei denn, Sie sehen sich die Deklaration an. Aber auch hier ist jeder Weg in Ordnung. Der Wertezeiger entspricht den Werten oder der Wertezeiger entspricht der Adresse des Werts unter Null. Es ist eine Frage der Programmiererpräferenz. Und wieder ist es eine Notationssache. Um es noch einmal zu wiederholen: Wenn Sie zwei Ausdrücke ar sub-i und asterisk ar plus i haben, haben diese eine äquivalente Bedeutung. Wir möchten nur sicherstellen, dass Sie dies verstehen. Beide funktionieren, wenn ar der Name eines Arrays ist. Sie können den Zeiger verwenden und die Referenzierung aufheben. Und beide funktionieren, wenn es sich um eine Zeigervariable handelt. Die Verwendung eines Ausdrucks wie ar plus plus funktioniert nur, wenn ar eine Zeigervariable ist. Sie können ein Array also nicht inkrementieren, indem Sie plus plus sagen und erwarten, dass es zum nächsten Element wechselt. Sie können dies nur für Array-Zeiger oder Zeiger tun. Wenn wir also ar haben, das ist ein Zeiger, der auf ein Array zeigt, und wir zum nächsten Element gehen möchten, können wir es jedes Mal erhöhen. Wenn Sie jedoch ar sub-i sagen, weil ar sub i ein Array und ein Array ein Zeiger ist, können Sie es dereferenzieren, indem Sie sagen, ar ar ist ein Zeiger, den wir ar plus i zugewiesen haben. Es ist dasselbe. In den nächsten Vorlesungen werden wir uns also mit Punktarithmetik befassen, und dies hängt stark mit der Beziehung zwischen Arrays und Zeigern zusammen. Zeiger können Arrays sein. Es ist kein Zeigerarray, es ist ein Element. Sie können also die Adresse eines Zeigers verwenden, um durch ein Array zu navigieren und durch ein Array zu iterieren. Vielen Dank.