C Tutorial C References

C Functions - Pass by Pointer



When the argument or parameter of a function is passed by pointer, then the function takes the address of the parameter and any operation performed on the passed parameter is performed at its memory location inside the function. This means that any changes made to the parameter inside the function will change the parameter itself also.

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 pointer: %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 pointer: 25

❮ C - Functions