#include void swap ( int* p, int* q ) { int temp; temp = *p; *p = *q; *q = temp; } int main ( int argc, char* argv[] ) { int a = 101; int b = -2; int* pa; int* pb; int* ptemp; 1 printf( "\nThis is the output from %s:\n\n", argv[0] ); printf( "To begin, a is %d, b is %d\n", a, b ); swap( &a, &b ); printf( "After swap(&a, &b), a is %d, b is %d\n", a, b ); pa = &a; pb = &b; 2 printf( "\nNow pa points to an object with value %d," 2 "\nand pb points to an object with value %d\n", *pa, *pb ); swap( pa, pb ); 3 printf( "After swap(pa, pb), a is %d, b is %d\n", a, b ); printf( "And pa points to an object with value %d," "\nand pb points to an object with value %d\n", *pa, *pb ); ptemp = pa; pa = pb; pb = ptemp; 4 printf( "\nAfter swaping pa and pb,\npa points to an object with value %d," "\nand pb points to an object with value %d\n", *pa, *pb ); printf( "But a is %d, b is %d\n", a, b ); return (0); }