I am studying functions in c and i am confuse between pass by value and pass by reference?
Pass by value is copy of the variable where any changes made to it apply only within the scope of that function.
Pass by reference is the address of the variable, which can be modified within a function and apply throughout the life of the variable
void passByValue(int n) // copy of a variable
n = 10; // change is local to this function only
void passByReference(int *n) // address of a variable
*n = 10; // changes variable through its address
// n is a pointer to an address
// *n derefences the pointer to change the
// value at that address
int x = 0;
passByValue(x); // pass a copy of x to the function
printf("passByValue: %d\n", x); // x should still be 0
passByReference(&x); // pass the address of x to the function
printf("passByReference: %d\n", x); // x should now be 10
It looks like you're new here. If you want to get involved, click one of these buttons!