 |
/* Example 14.1: Using pointers |
 |
Source: K&R2, p95-96 |
 |
Modified by Peter Brusilovsky |
 |
Objective: use of addresses in function arguments |
 |
*/ |
 |
#include <stdio.h> |
 |
void bad_swap(int x, int y); |
 |
void good_swap(int *p1, int *p2); |
 |
main() { |
 |
int a = 1, b = 999; |
 |
|
 |
printf("a = %d, b = %d
", a, b); |
 |
bad_swap(a, b); |
 |
printf("a = %d, b = %d
", a, b); |
 |
good_swap(&a, &b) |
 |
printf("a = %d, b = %d
", a, b) |
 |
} |
 |
/* bad example of swapping - a function can't change parameters */ |
 |
void bad_swap(int x, int y) { |
 |
int temp; |
 |
temp = x; |
 |
x = y; |
 |
y = temp; |
 |
} |
 |
/* good example of swapping - a function can't change prameters |
 |
but if a parameter is a pointer it can change the value it points to */ |
 |
void good_swap(int *px, int *py) { |
 |
int temp; |
 |
temp = *px; |
 |
*px = *py; |
 |
*py = temp; |
 |
} |