Pointer and Function

The pointers are very much used in a function. Sometimes only with a pointer a complex function can be easily represented and success. The usage of the pointers in a function defintion may be classified into two groups.
1. Call by Value.
2. Call by reference

Call by Value
We have seen that a function in invoked there will be a link established between the formal and actual parameters. A temporary storage is created where the value of actual parameters is stored.

The formal parameters picks up its value from storage area the mechanism of data transfer between actual parameters mechanism of data transfer is referred as call by value.

The corresponding formal parameters represents a local variable in the called function.

This will not change the value of actual parameters.

#include<stdio.h>
void main( )
{
int x,y;
x=20;
y=30;
printf("\n Value of a and b before function call = %d%d",a,b);
fucn(x,y);
printf("\n Value of a and b after function call = %d%d",a,b);
}
fucn(p,q)
int p,q;
{
p=p+q;
q=q+q;
}

Call by Reference
When we pass address to a function the parameters  receiving the address  should be pointers. The process of calling a function by using pointers to pass the address of the variable is known as call by reference . The function which is called by reference can change the value of the variable used in the call.

/* Example of call by reference */

#include<stdio.h>
void main( )

int x, y;
x=20;
y=30;
printf("\n Value of a and b before function call = %d%d",a,b);
fucn(&x,&y);
printf("\n Value of a and b after function call = %d%d", a,b);
}
fucn(p,q)
int p,q;
{
*p=*p + *p;
*q=*q + *q;
}