Passing Pointers
#include
int F (int *a, int b);
void G (int *b);
main() {
int a, b, c;
int *aPtr, *bPtr;
a = 1; b = 2; c = 3;
aPtr = &a;
printf("init: a = %d, b = %d, c= %d\n", a, b, c);
G(&c);
c = F(aPtr, b);
printf("main: a = %d, b = %d, c= %d\n", a, b, c);
}
int F (int *ptr, int some) {
int thing;
thing = 2 * *ptr + 5;
G(ptr);
printf("F: *ptr = %d, some = %d, thing = %d\n", *ptr, some, thing);
return(thing);
}
void G (int *ptr) {
int a, b;
b = *ptr + 7;
*ptr = 4 * b;
a = b - 2;
printf("G: a = %d, *ptr = %d, b = %d\n", a, *ptr, b);
return;
}
Hopefully, I will get the commented version up later this week.
Output:
init: a = 1, b = 2, c= 3
G: a = 8, *ptr = 40, b = 10
G: a = 6, *ptr = 32, b = 8
F: *ptr = 32, some = 2, thing = 7
main: a = 32, b = 2, c= 7
Main Page