000
31.05.2004, 16:47 Uhr
~ibot
Gast
|
Ich habe einige Fragen zu diesem Quelltext:
C++: |
#include <iostream.h> #include <conio.h> #include <stdlib.h>
#define mcout cout<<'\n'
void main() { system("CLS"); char sFld[] = "DCBA"; int iFld[5] = {1,2,3,4,5}; char *p0, *p1;
mcout << iFld; // Ausgabe => 0012F568 mcout << *(iFld+1); // Ausgabe => 2 mcout << iFld+2; // Ausgabe => 0012F570 mcout << sFld; // Ausgabe => DCBA mcout << &sFld[0]; // Ausgabe => DCBA mcout << &sFld[1]; // Ausagbe => CBA
|
- iFld+2; Warum wird die Adresse nur um 3 Byte erhöht obwohl es sich um Integer-Typ handelt? Müsste nicht 12 Byte weitergezählt werden?
- sFld; Warum wird hier der Komplette Inhalt des Feldes angezeigt und nicht die Adresse des ersten Elements, so wie es bei iFld der Fall ist?? Ich war bisher überzeugt dass man den Inhalt eines Arrays nur mittels Zählschleife ausgeben kann :-/
- &sFld[1]; Hier wird doch demonstrativ die Adresse verlangt, oder? Warum wird dann der Inhalt ab dem 2. Element ausgegeben?
Würde mich über eure Antworten freuen :-)
Gruß Dieser Post wurde am 31.05.2004 um 18:15 Uhr von Pablo editiert. |