Zeiger ( Pointer )

Hi!

Ich bin gerade dabei über Zeiger in C++ zu lernen.
Dort stoße ich auf ein Problem:

1. #include 
2. using namespace std;
3. void main()
4. {
5. int Feld[] = {5,10,15,20,25};
6. int\* ptr = Feld;
7. int eineVariable = ptr[2];
8. cout 
warum in 6. Zeile nicht so:
_int\* ptr = &Feld;_
und warum in 7. Zeile:
**int eineVariable = ptr[2];**
anstatt:
_int eineVariable = \*ptr[2]_

Ich weiss, wenn ich die entsprechende Zeile mit den kursiven Zeile ersetze, bekomme ich Fehlermeldung. Aber ich verstehe nicht, warum.
Könnte jemand mir erklären? Vielen vielen Dank.

Viele Grüße
Theo
> 1. #include   
> 2. using namespace std;  
> 3. void main()  
> 4. {  
> 5. int Feld[] = {5,10,15,20,25};  
> 6. int\* ptr = Feld;  
> 7. int eineVariable = ptr[2];  
> 8. cout





> warum in 6. Zeile nicht so:  
> _int\* ptr = &Feld;_


weil durch die Arraydeklaration ist Feld automatisch schon ein Pointer auf das Array.



> und warum in 7. Zeile:  
> **int eineVariable = ptr[2];**  
> anstatt:  
> _int eineVariable = \*ptr[2]_


Durch den Arrayzugriff [] wird der Pointer automatisch dereferenziert.

Vielen Dank!

Hi!

Ich bin gerade dabei über Zeiger in C++ zu lernen.
Dort stoße ich auf ein Problem:

warum in 6. Zeile nicht so:
int* ptr = &Feld;
und warum in 7. Zeile:
int eineVariable = ptr[2];
anstatt:
int eineVariable = *ptr[2]

Ich weiss, wenn ich die entsprechende Zeile mit den kursiven
Zeile ersetze, bekomme ich Fehlermeldung. Aber ich verstehe
nicht, warum.
Könnte jemand mir erklären? Vielen vielen Dank.

ptr[2] kannst du jederzeit auch mit *(ptr+2) ersetzen (und auch umgekehrt), die Schreibweise ptr[2] ist einfach eine etwas einfachere und übersichtlichere Schreibweise. In C(++) werden Zeiger sehr viel verwendet und deshalb wurden dafür eigens Konstrukte geschafen.

MfG Peter(TOO)