/* pointers.c Written in CS 332 by Jeff Ondich and friends on March 31, 2010. Some simple pointer manipulations in C. */ #include void badswap(int j, int k); void goodswap(int *p, int *q); int main() { // Simple use of & and *. int k = 5; int *ptr; ptr = &k; *ptr = 6; printf("Here's your number: %d\n", k); // Try swapping two variables. int a = 10; int b = 20; printf("Before badswap: a = %d, b = %d, &a = 0x%08x\n", a, b, (unsigned int)(&a)); badswap(a, b); printf("After badswap: a = %d, b = %d\n", a, b); printf("Before goodswap: a = %d, b = %d, &a = 0x%08x\n", a, b, (unsigned int)(&a)); goodswap(&a, &b); printf("After goodswap: a = %d, b = %d\n", a, b); return 0; } void badswap(int j, int k) { printf("Start of badswap: j = %d, k = %d, &j = 0x%08x\n", j, k, (unsigned int)(&j)); int tmp = j; j = k; k = tmp; printf("End of badswap: j = %d, k = %d\n", j, k); } void goodswap(int *p, int *q) { int tmp = *p; *p = *q; *q = tmp; }