06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

17 Zeiger (Po<strong>in</strong>ter)<br />

Zeiger s<strong>in</strong>d <strong>in</strong> C e<strong>in</strong> sehr wichtiges Sprachmittel, es gibt kaum e<strong>in</strong> Programm das ohne Zeiger auskommt.<br />

Um richtig C Programmieren zu können, muss man Zeiger verstehen.<br />

Im Speicher e<strong>in</strong>es jeden Computers s<strong>in</strong>d <strong>die</strong> Speicherplätze (Bytes) durchnumeriert. Jede Variable<br />

hat somit e<strong>in</strong>e e<strong>in</strong>deutige Adresse (Platz im Speicher). Als Adresse von mehrbytigen Variablen wird<br />

üblicherweise <strong>die</strong> Adresse des ersten von ihr belegten Speicherplatzes verwendet.<br />

Zeiger s<strong>in</strong>d nun spezielle Variablen, welche <strong>die</strong> Adresse (Position) e<strong>in</strong>er anderen Variablen aufnehmen<br />

können. Über <strong>die</strong> Zeigervariable kann nun auch auf <strong>die</strong> Orig<strong>in</strong>alvariable zugegriffen werden.<br />

Bei der Deklaration e<strong>in</strong>er Zeigervariablen muss man angeben, auf welchen Variablentyp sie<br />

zeigt. (Es s<strong>in</strong>d auch Zeiger auf Zeiger usw. möglich).<br />

Mit dem * Operator wird e<strong>in</strong>erseits e<strong>in</strong>e Zeigervariable deklariert <strong>und</strong> def<strong>in</strong>iert, andererseits kann<br />

damit auf <strong>die</strong> von e<strong>in</strong>em Zeiger adressierte Variable zugegriffen werden (Man sagt dazu: 'der Zeiger<br />

wird dereferenziert').<br />

Mit dem & Operator kann <strong>die</strong> Adresse e<strong>in</strong>er beliebigen Variable ermittelt werden.<br />

<strong>in</strong>t a = 3;<br />

<strong>in</strong>t b = 4;<br />

<strong>in</strong>t c = 5;<br />

<strong>in</strong>t * Ptr1;<br />

<strong>in</strong>t * Ptr2 = NULL;<br />

Ptr1= &a;<br />

*Ptr1= 7;<br />

Ptr1= &b;<br />

*Ptr1= 8;<br />

a = 7 + *Ptr1;<br />

c = 7 * *Ptr1;<br />

Ptr2 = Ptr1;<br />

Ptr1<br />

Ptr1<br />

Ptr1<br />

Ptr2<br />

a 3<br />

b 4<br />

c 5<br />

a 7<br />

b 4<br />

c 5<br />

a 15<br />

b 8<br />

c 56<br />

Ptr1<br />

Ptr1<br />

Ptr1<br />

Ptr2<br />

a 7<br />

b 4<br />

c 5<br />

a 7<br />

b 8<br />

c 5<br />

a 15<br />

b 8<br />

c 56<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 57/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!