#include #include void swap1(int a, int b) { int temp = a; printf("en swap1 antes del swap a=%d, b=%d\n", a, b); a = b; b=temp; printf("en swap1 luego del swap a=%d, b=%d\n", a, b); } void swap2(int *a, int * b) { printf(" a %p b %p\n",a,b); int temp = *a; printf("en swap2 antes del swap *a=%d, *b=%d\n", *a, *b); *a = *b; *b=temp; printf("en swap2 luego del swap *a=%d, *b=%d\n", *a, *b); } void swap3(int *a, int * b) { printf(" a %p b %p\n",a,b); int *temp; temp = a; printf("en swap3 antes del swap *a=%d, *b=%d\n", *a, *b); a = b; b=temp; printf("en swap3 luego del swap *a=%d, *b=%d\n", *a, *b); } int main(int argc, char ** argv) { int x=1, y=2; if(argc != 3) { printf(" error en llamada, debe ser: ./swap a b donde a y b son enteros\n"); return -1; } x=atoi(argv[1]); y=atoi(argv[2]); printf("al inicio: x=%d, y=%d\n", x, y); /* swap1(x, y); printf("luego de swap1: x=%d, y=%d\n\n", x, y); swap2(&x, &y); printf("luego de swap2: x=%d, y=%d\n\n", x, y); */ swap3(&x, &y); printf("luego de swap3: x=%d, y=%d\n\n", x, y); return 0; }