C Tutorial C References

C Functions - Pass by Reference



To pass a parameter by reference in a function in C, the address of the parameter should be used and to achieve this, parameter should be passed by pointer. When the parameter is passed by pointer inside a function, all operations performed on the that parameter is performed at its memory location. This means that any changes made to that parameter inside the function will change the parameter itself.

Example:

In the example below, the function called Square is created which takes argument as pointer and returns square of the passed argument. The function takes the address of the parameter and modify the parameter as square of itself at its memory location. In the main() function, when the passed argument is printed after calling the function Square, the value of the parameter get changed because it was changed at its memory location.

#include <stdio.h>
int Square(int *x); 

int main (){
    int x = 5;
    printf("Initial value of x: %i\n", x);
    Square(&x);
    printf("Value of x, after passed by reference: %i\n", x);
    return 0;
}

int Square(int *x){
    *x = (*x)*(*x);
    return *x; 
}

The output of the above code will be:

Initial value of x: 5
Value of x, after passed by reference: 25

❮ C - Functions