/* tp-swap.c: TecPro Beispielprogramm Kurzbeschreibung: "call by reference / call by value" C.Koch | HS-Emden-Leer | 19.12.2010 */ #include int swapRef(int* a, int* b); int swapVal(int a, int b); int swapMem(int* a, int* b); void main(void) { /* auto -> Stack | static -> Datensegment*/ static int a,b; a = 10; b = 20; swapVal(a,b); printf("Var \t a =%i \t b= %i \n",a, b); swapRef(&a, &b); printf("Var \t a =%i \t b= %i \n",a, b); swapMem(&a, &b); printf("Var \t a =%i \t b= %i \n",a, b); } int swapRef(int* a, int* b) { int temp; temp = *a; *a = *b; *b = temp; return temp; } int swapVal(int a, int b) { int temp; temp = a; a = b; b = temp; return temp; } /* Aufgabe: Wie muss die folgende Funktion geƤndert werden, falls die Variablen a und b auf dem Stack liegen und nicht im Datensegment? */ int swapMem(int* a, int* b) { int temp; temp = *a; *a = *(a+1); *(a+1) = temp; return temp; }