Passing Pointers to Functions in C
Last Updated :
05 Nov, 2022
Prerequisites:
Passing the pointers to the function means the memory location of the variables is passed to the parameters in the function, and then the operations are performed. The function definition accepts these addresses using pointers, addresses are stored using pointers.
Arguments Passing without pointer
When we pass arguments without pointers the changes made by the function would be done to the local variables of the function.
Below is the C program to pass arguments to function without a pointer:
C
#include <stdio.h>
void swap( int a, int b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10, b = 20;
swap(a, b);
printf ( "Values after swap function are: %d, %d" ,
a, b);
return 0;
}
|
Output
Values after swap function are: 10, 20
Arguments Passing with pointers
A pointer to a function is passed in this example. As an argument, a pointer is passed instead of a variable and its address is passed instead of its value. As a result, any change made by the function using the pointer is permanently stored at the address of the passed variable. In C, this is referred to as call by reference.
Below is the C program to pass arguments to function with pointers:
C
#include <stdio.h>
void swap( int * a, int * b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a = 10, b = 20;
printf ( "Values before swap function are: %d, %d\n" ,
a, b);
swap(&a, &b);
printf ( "Values after swap function are: %d, %d" ,
a, b);
return 0;
}
|
Output
Values before swap function are: 10, 20
Values after swap function are: 20, 10
Share your thoughts in the comments
Please Login to comment...