Quote:
Originally Posted by xroute66x™ :)
Und zwar , wollte ich Folgendes wissen. - Was sind Pointer/Zeiger?
- Wozu sind die gut?
- Ein einfaches Beispiel zur Verdeutlichung.
|
Ich glaub ich kann das recht gut erklären.
Zeiger sind - wie der Name schon sagt - etwas was auf etwas anderes zeigt. Beim computer gibt es Speicherbereiche, bei 32bit Prozessen sind diese auch nur 32bit "groß", d.h. von 0x00000000 - 0xFFFFFFFF. Zeiger sind dafür da, um auf dynamisch geladene bzw. erstellte Inhalte zu verweisen. Wenn du nun eine Instanz vom Objekt X erstellst, ist diese Instanz irgendwo im freien Speicher. Ein Zeiger ist aber statisch, d.h. immer an der gleichen Stelle, dieser zeigt aber auf den meist unterschiedlichen Stelle wo sich unsere Instanz befindet.
Es ist auch so, dass man bei Strings auch mit Zeigern arbeitet. Immerhin kann man schlecht mittem im Code nen Text haben, also sind Strings meistens in der Data-Section, das ist aber wieder was anderes. Also wird bei einem String eine Addresse angegeben, die auf die Stelle im speicher zeigt, wo der String ist. Der String endet mit einem Null-Byte, also muss man nicht noch extra die Länge angeben.
Ein beispiel:
Code:
char[128] buffer;
fgets(buffer, sizeof(buffer));