#include <stdio.h>
void swap_pointer( int *pp[] );
int main(void) {
int a=1;
int b=2;
int *p[] = {&a, &b};
int n = sizeof(p)/sizeof(p[0]);
int i;
for( i=0; i<n; i++ )
printf( "before: p[%d] %p\n", i
, p
[i
] ); for( i=0; i<n; i++ )
printf( "before: *p[%d] %d\n", i
, *p
[i
] );
swap_pointer(p);
for( i=0; i<n; i++ )
printf( "after: p[%d] %p\n", i
, p
[i
] ); for( i=0; i<n; i++ )
printf( "after: *p[%d] %d\n", i
, *p
[i
] );
return 0;
}
void swap_pointer( int *pp[] ){
int *temp = pp[0];
pp[0] = pp[1];
pp[1] = temp;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHN3YXBfcG9pbnRlciggaW50ICpwcFtdICk7CgppbnQgbWFpbih2b2lkKSB7CglpbnQgYT0xOwoJaW50IGI9MjsKCWludCAqcFtdID0geyZhLCAmYn07CglpbnQgbiA9IHNpemVvZihwKS9zaXplb2YocFswXSk7CglpbnQgaTsKCglmb3IoIGk9MDsgaTxuOyBpKysgKQoJCXByaW50ZiggImJlZm9yZTogcFslZF0gJXBcbiIsIGksIHBbaV0gKTsKCWZvciggaT0wOyBpPG47IGkrKyApCgkJcHJpbnRmKCAiYmVmb3JlOiAqcFslZF0gJWRcbiIsIGksICpwW2ldICk7CgoJc3dhcF9wb2ludGVyKHApOwoKCWZvciggaT0wOyBpPG47IGkrKyApCgkJcHJpbnRmKCAiYWZ0ZXI6IHBbJWRdICVwXG4iLCBpLCBwW2ldICk7Cglmb3IoIGk9MDsgaTxuOyBpKysgKQoJCXByaW50ZiggImFmdGVyOiAqcFslZF0gJWRcbiIsIGksICpwW2ldICk7CgoJcmV0dXJuIDA7Cn0KCnZvaWQgc3dhcF9wb2ludGVyKCBpbnQgKnBwW10gKXsKCWludCAqdGVtcCA9IHBwWzBdOwoJcHBbMF0gPSBwcFsxXTsKCXBwWzFdID0gdGVtcDsKCgoKfSAKCg==