Call by value method
- In call by value method, the value of the actual arguments is copied into the formal arguments.
- In call by value method, we can not modify the value of the actual argument by changing the value of formal argument.
- In call by value method, different memory is allocated for actual arguments and formal arguments.
- In call by value method, the actual argument is used in the function call whereas formal argument is used in the function definition.
- In call by value method, function can return only one value directly.
कॉल बाय वैल्यू मेथड-
- कॉल बाय वैल्यू मेथड में एक्चुअल आर्गुमेंट को फॉर्मल आर्गुमेंट में कॉपी किया जाता है।
- कॉल बाय वैल्यू मेथड में एक्चुअल आर्गुमेंट की वैल्यू को फॉर्मल आर्गुमेंट की वैल्यू में परिवर्तन कर, परिवर्तित नहीं किया जा सकता है।
- कॉल बाय वैल्यू मेथड में एक्चुअल आर्गुमेंट और फॉर्मल आर्गुमेंट को अलग अलग मेमोरी प्रदान की जाती है।
- कॉल बाय वैल्यू मेथड में एक्चुअल आर्गुमेंट फंक्शन कालिंग में प्रयुक्त किया जाता है और फॉर्मल आर्गुमेंट फंक्शन की डेफिनिशन में प्रयुक्त किया जाता है।
- कॉल बाय वैल्यू मेथड में फंक्शन प्रत्यक्ष रूप से केवल एक वैल्यू रिटर्न कर सकता है।
Example:-
C program to swap values of two variables using function (call by value).#include<stdio.h>
#include<conio.h>
void main(){
int a,b;
void swap(int,int);
clrscr();
printf("Enter two integer numbers\n");
scanf("%d%d",&a,&b);
printf("Before swapping A=%d and B=%d\n",a,b);
swap(a,b);
//actual arguments will not change.
printf("A=%d and B=%d\n",a,b);
getch();
}
void swap(int x,int y){
int z;
z=x;
x=y;
y=z;
printf("After swapping A=%d and B=%d\n",x,y);
return;
}
Call by reference method-
- In call by reference method , the address of the actual arguments is stored into pointer variable.
- In call by reference method , we can not modify the value of the actual argument by changing the value stored in memory address pointed by pointers.
- In call by reference, Memory which is allocated for actual arguments pointed by pointers.
- In call by reference method, the address of actual argument is used in the function call whereas pointer as formal argument is used in the function definition.
- In call by reference method, function can return only one value directly but many values indirectly.
कॉल बाय रिफरेन्स मेथड-
- कॉल बाय रिफरेन्स मेथड में एक्चुअल आर्गुमेंट के एड्रेस को पॉइंटर वेरिएबल में स्टोर किया जाता है।
- कॉल बाय रिफरेन्स मेथड में एक्चुअल आर्गुमेंट की वैल्यू को पॉइंटर द्वारा पॉइंट किये जाने वाले मेमोरी एड्रेस पर रखी वैल्यूज में परिवर्तन कर, परिवर्तित किया जा सकता है।
- कॉल बाय रिफरेन्स मेथड में एक्चुअल आर्गुमेंट के मेमोरी एड्रेस को पॉइंटर वेरिएबल द्वारा पॉइंट किया जाता है।
- कॉल बाय रिफरेन्स मेथड में एक्चुअल आर्गुमेंट का एड्रेस फंक्शन कालिंग में प्रयुक्त किया जाता है और पॉइंटर (फॉर्मल आर्गुमेंट के रूप में ) फंक्शन की डेफिनिशन में प्रयुक्त किया जाता है।
- कॉल बाय रिफरेन्स मेथड में फंक्शन प्रत्यक्ष रूप से केवल एक वैल्यू रिटर्न कर सकता है परन्तु अप्रत्यक्ष रूप से कई वैल्यू रिटर्न कर सकता है।
Example:-
#include<stdio.h>
#include<conio.h>
void main(){
int a,b;
void swap(int*,int*);
clrscr();
printf("Enter two integer numbers\n");
scanf("%d%d",&a,&b);
printf("Before swapping A=%d and B=%d\n",a,b);
swap(&a,&b);
printf("After swapping A=%d and B=%d\n",a,b);
getch();
}
void swap(int *x,int *y){
int z;
z=*x;
*x=*y;
*y=z;
return;
}
No comments:
Post a Comment