Guten Tag! Ich übe c mit dev-C++4.9.9.2 folgendes Beispiel zu Arrays mit Zeiger habe ich nicht begriffen:
1 | #include <stdio.h> |
2 | #include <stdlib.h> |
3 | |
4 | int main(int argc, char *argv[]) |
5 | {
|
6 | int punkte[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; |
7 | |
8 | // Positionszeiger, Setzen auf 6.Element
|
9 | int *pos = punkte + 5; |
10 | |
11 | // Index berechnen
|
12 | int index = pos - punkte; |
13 | |
14 | |
15 | printf("Index: %d\n", index); |
16 | printf("Wert pos / punkte[index]: %d\n", punkte[index]); |
17 | |
18 | |
19 | |
20 | system("PAUSE"); |
21 | return 0; |
22 | }
|
Wieso gibt diese Indexberechnung 5?? pos ist zeigt auf das 6. Element 6. Da müsste ja der Wert von punkte 1 betragen? Das seh ich etwas noch nicht!
1 | // Index berechnen
|
2 | int index = pos - punkte; |
3 | [
|
Vielen Dank und freundliche Grüsse! M.B.