ausgabe der zahlen eines programmes

marvellous

Mitglied
#include <stdio.h>
void main()
{
int m, x;
int * mPtr;
int * xPtr;
int ** mPtrPtr;
unsigned char * cPtr;
void * vPtr;
m = 7;
x = -3;
mPtr = &m;
xPtr = &x;
mPtrPtr = &mPtr;
*xPtr += 4;
printf("a) m=%d, x=%d, *mPtr=%d, *xPtr=%d, **mPtrPtr=%d \n",
m, x, *mPtr, *xPtr, **mPtrPtr);

system("Pause");
return 0;
}

wenn man folgendes programm ausliest kommen folgende werte raus:
m=7, x=1, *mPtr=7, *xPtr=1, **mPtrPtr=7

m ist ja kein problem..m=7
*mPtr=7 ist auch kein problem
*xPtr=1 kommt ja zustande weil der pointer *xPtr den wert -3 annimmt..also -3+4=1
**mPtrPtr = 7 beil der pointer auf den wert von mptr zeigt...

mein problem ist: wie kommt man auf x=1****ich hätte hingeschrieben x=-3 durch was wird dieses x denn verändert?
 
Bitte poste deinen Code in die sog. Code-Tags: [code=cpp]Hier deinen Code![/code]
Danke.

Zuerst ist ja x -3, danach wird der Pointer bzw. sein Inhalt xPtr, der auf x zeigt, um 4 vergrößert und dadurch entsteht 1 ;)

C++:
#include <stdio.h>
void main()
{
  int m, x;
  int * mPtr;
  int * xPtr;
  int ** mPtrPtr;
  unsigned char * cPtr;
  void * vPtr;
  m = 7;
  x = -3;  /* <== hier  */
  mPtr = &m;
  xPtr = &x;
  mPtrPtr = &mPtr;
  *xPtr += 4;             /* <== Und hier */
  printf("a) m=%d, x=%d, *mPtr=%d, *xPtr=%d, **mPtrPtr=%d \n",
  m, x, *mPtr, *xPtr, **mPtrPtr);

  system("Pause");
  return 0;
}

// 2 Minuten zu spät geantwortet, CPoly :D
 
Zuletzt bearbeitet:
Zurück