Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
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 />
a 3<br />
b 4<br />
c 5<br />
Ptr1<br />
a 7<br />
b 4<br />
c 5<br />
Ptr1<br />
Ptr1= &b;<br />
*Ptr1= 8;<br />
a 7<br />
b 4<br />
c 5<br />
a 7<br />
b 8<br />
c 5<br />
Ptr1<br />
Ptr1<br />
a = 7 + *Ptr1;<br />
c = 7 * *Ptr1;<br />
Ptr2 = Ptr1;<br />
a 15<br />
b 8<br />
c 56<br />
Ptr1<br />
Ptr2<br />
a 15<br />
b 8<br />
c 56<br />
Ptr1<br />
Ptr2<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 57/147