Function Call: Pass by Pointer

                                                Pass by pointer means to pass a pointer argument in the calling function to the corresponding formal parameter of the called function. The called function can modify the value of the variable to which the pointer argument points.

The following example shows how arguments are passed by pointer:

void swapnum (int *i, int *j)

{

int temp= *i;

*i= *j;

*j= temp;

}

int main(void)

{

int a=10;

int b= 20;

swapnum(&a, &b);

printf(“A is %d and B is %d \n”, a , b);

return 0;

}

When the function swapnum( ) is called, the values of the variables a and b are exchanged because they are passed by pointer. The output is:

A is 20 and B is 10

                  When you use pass by pointer, a copy of the pointer is passed to the function. If you modify the pointer inside the called function, you only modify the copy of the pointer, but the original pointer remains unmodified and still points to the original variable.
                         The difference between pass by pointer and pass by value is that modifications made to arguments passed in by pointer in the called function have effect in the calling function, whereas modifications made to arguments passed in by value in the called function can not affect the calling function.  

Use :

                   You can use pass by pointer if you want to modify the argument value in the calling function. Otherwise, you can use pass by value to pass arguments.

Leave a comment

Design a site like this with WordPress.com
Get started