here in this code the swap function will not return the value as swapped but it’s working locally
code:
#include<stdio.h>
void swap(int a,int b){
int temp;
temp=a;
a=b;
b=temp;
}
int main(){
int x=100,y=200;
printf("x=%d y=%d\n",x,y);
swap(x,y);
printf("x=%d y=%d\n",x,y);
return 0;
}
output:
x=100 y=200 x=100 y=200
so we need to work with address swapping and by sending address from the main function we are sending values using pointer in swap function
code:
#include<stdio.h>
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int x=100,y=200;
printf("x=%d y=%d\n",x,y);
swap(&x,&y);
printf("x=%d y=%d\n",x,y);
return 0;
}
output:
#include<stdio.h>
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int x=100,y=200;
printf("x=%d y=%d\n",x,y);
swap(&x,&y);
printf("x=%d y=%d\n",x,y);
return 0;
}
vid:
personally saying this vid cleared up my thoughts about pointer perfectly. Thanks to Shibaji 🙂