Share
Explore BrainMass

Parameter Passing in C

I do not have any experience in C or C++ so I am struggling with understanding what the parameter passing of these are.

Consider the following program written in C syntax:
void main() {
int value = 2, list[5] = {1, 3, 5, 7, 9);
swap(value, list[0]);
swap(list[0], list[1);
swap(value, list[value]);
}
void swap(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
For each of the following parameter-passing methods, what are all
of the values of the variables value and list after each of the three
calls to swap?
a. Passed by value
b. Passes by reference
c. Passes by value-result
Assume the calls are not accumulative; that is, they are always
called with the initialized values of the variables, so their effects are
not accumulative.

Solution Preview

(a) Passed by value
The swap function is passed by value. It means that the values passed
to swap have another copy and is used in the swap function. Any change
of the variables in swap won't affect the variables from the caller.
So after three calls to swap, all variables maintain the same values.
...

$2.19