jobo wrote:
> Suppose I have a function foo:
>
> void foo(int x, int y) {
>
> printf(" %d ", y);
> x = y;
>
>
> }
>
> I have two ints a and b.
> a = 7;
> b = 7;
> then I call foo(a, ++b);
>
> For some reason at the end of running foo, I get a = 7 and b = 8.
>
> Why do I not have a = b = 8?
Because x is local to the function foo. In C function arguments
are passed by value, not by reference. If you want a function to
change an object in the calling function, you must pass in a pointer:
void foo(int *x, int y)
{
*x = y;
}
and call it:
int a, b;
....
foo(&a, b);
--
Thomas M. Sommers --
-- AB2SB