Zeiger

Hallo,

kann mir bitte jemand sagen, an welcher Stelle mein Fehler liegt?

Ich muss hinschreiben was folgendes Programm ausgibt:

#include
int main(void)
{
int zahl, neuzahl;
int *zptr, *neuptr;

zahl = 100;
zptr = &zahl;
neuptr = zptr;
neuzahl = *neuptr;

printf("*zptr = %d\n", *zptr);
/* *zptr = _____________________________ */
printf(„neuzahl = %d\n“, neuzahl);
/* neuzahl = __________________________ */

*neuptr = 25;
neuptr = &neuzahl;
*neuptr = 15;

printf(„zahl = %d\n“, zahl);
/* zahl = ______________________________ */

printf(„neuzahl = %d\n“, neuzahl);
/* neuzahl = ___________________________ */

neuzahl = *zptr + 20;
*zptr = neuzahl;
*zptr += 30;

printf(„zahl = %d\n“, zahl);
/* zahl = ______________________________ */

printf(„neuzahl = %d\n“, neuzahl);
/* neuzahl = ___________________________ */

return (0);
}

erste Ausgabe: (100), da zptr gleich zahl, und zahl gleich 100 ist.
zweite Ausgabe: (100), neuzahl -> neuptr -> zptr -> zahl -> 100
dritte ausgabe: (auch 100), da zahl->100 (ist aber falsch, muss (25) rauskommen, aber warum?
vierte: (25 oder 15), da neuzahl -> neuptr -> (25 oder 15)

Die restlichen zwei Ausgaben sind bei mir auch falsch.

/* richtige Loesung:
100
100
25
15
75
45
*/

Danke,

MfG,
Alexander

Hi

zahl = 100;

// Der Variable Zahl wird Wert 100 zugewiesen

zptr = &zahl;

// Pointer *zptr Zeigt auf Variable zahl

neuptr = zptr;

// Pointer *neuptr Zeigt auf Variable Zahl, da zptr die Adresse dieser enthält

*neuptr = 25;

// Der Wert 25 wird in die Variable Zahl geschrieben

neuptr = &neuzahl;

// Pointer *neuptr zeigt auf die Variable neuzahl

*neuptr = 15;

// Der Wert 15 wird in die Variable neuzahl geschrieben

Gruss Tino

Danke
Vielen Dank für die gute Erklärung!!

Grüss,
Alexander