Moin Leute,
sitz seit einiger Zeit über einer Aufgabe aus einer Musterklausur und ich versteh nicht ganz warum a und b die Werte annehmen, die sie annehmen. Hoffentlich kann einer von euch mir weiterhelfen.
Das Programm ist in C geschrieben und der Code sieht folgendermaßen aus:
Beim ersten print Statement ist es klar, bei zweiten auch noch, aber dann kapier ich die Logik dahinter überhaupt nicht mehr. Hat jemand von euch eine Idee? Wäre über Hilfe sehr dankbar.
sitz seit einiger Zeit über einer Aufgabe aus einer Musterklausur und ich versteh nicht ganz warum a und b die Werte annehmen, die sie annehmen. Hoffentlich kann einer von euch mir weiterhelfen.
Das Programm ist in C geschrieben und der Code sieht folgendermaßen aus:
Code:
int counter = 10;
void zeigerTest(int *pa, int *pb)
{
*pa = *pb+5;
*pb = counter;
counter+=10;
}
void zeigerSwap(int *pa, int *pb)
{
int a;
int *tmp = &a;
*tmp = *pa;
*pa = *pb;
*pb = *tmp;
*pa = counter++;
*pb = counter++;
}
int main(int argc, char *argv[])
{
int a = 5;
int b = 5;
printf("a=%d, b=%d\n",a,b);
zeigerTest(&a,&b);
printf("a=%d, b=%d\n",a,b);
zeigerTest(&a, &a);
printf("a=%d, b=%d\n",a,b);
zeigerTest(&b,&b);
printf("a=%d, b=%d\n",a,b);
zeigerSwap(&a, &b);
printf("a=%d, b=%d\n",a,b);
}
Beim ersten print Statement ist es klar, bei zweiten auch noch, aber dann kapier ich die Logik dahinter überhaupt nicht mehr. Hat jemand von euch eine Idee? Wäre über Hilfe sehr dankbar.
Zuletzt bearbeitet: