C Language in Hindi – Call by value and Call by reference

Call by value and Call by reference in c in hindi

Call by value and Call by reference in C in Hindi

सी भाषा में फ़ंक्शन में डेटा पास करने के दो तरीके हैं, अर्थात, Call by value and Call by reference

आइए सी भाषा में call by value and call by reference को एक-एक करके समझते हैं।

Call by value in C in hindi

  • Call by value method में, वास्तविक मापदंडों के मूल्य को औपचारिक मापदंडों में कॉपी किया जाता है। दूसरे शब्दों में, हम यह कह सकते हैं कि वेरिएबल का मान फंक्शन call में value method द्वारा उपयोग किया जाता है।
  • Call by value method में, हम वास्तविक पैरामीटर के मूल्य को औपचारिक पैरामीटर द्वारा modify नहीं कर सकते हैं।
  • Call by value में, वास्तविक और औपचारिक मापदंडों के लिए अलग-अलग मेमोरी आवंटित की जाती है क्योंकि वास्तविक पैरामीटर के मूल्य को औपचारिक पैरामीटर में कॉपी किया जाता है।
  • वास्तविक पैरामीटर वह argument है जो फ़ंक्शन call में उपयोग किया जाता है जबकि औपचारिक पैरामीटर वह argument है जो फ़ंक्शन definition में उपयोग किया जाता है।

आइए नीचे दिए गए उदाहरण द्वारा सी भाषा में Call by value को समझने की कोशिश करें:

  1. #include<stdio.h>  
  2. void change(int num) {    
  3.     printf("Before adding value inside function num=%d \n",num);    
  4.     num=num+100;    
  5.     printf("After adding value inside function num=%d \n", num);    
  6. }    
  7. int main() {    
  8.     int x=100;    
  9.     printf("Before function call x=%d \n", x);    
  10.     change(x);//passing value in function    
  11.     printf("After function call x=%d \n", x);    
  12. return 0;  
  13. }    

Output

Before function call x=100

Before adding value inside function num=100

After adding value inside function num=200

After function call x=100

Call by Value Example: Swapping the values of the two variables

  1. #include <stdio.h>  
  2. void swap(int , int); //prototype of the function   
  3. int main()  
  4. {  
  5.     int a = 10;  
  6.     int b = 20;   
  7.     printf("Before swapping the values in main a = %d, b = %d\n",a,b); // printing the value of a and b in main  
  8.     swap(a,b);  
  9.     printf("After swapping values in main a = %d, b = %d\n",a,b); // The value of actual parameters do not change by changing the formal parameters in call by value, a = 10, b = 20  
  10. }  
  11. void swap (int a, int b)  
  12. {  
  13.     int temp;   
  14.     temp = a;  
  15.     a=b;  
  16.     b=temp;  
  17.     printf("After swapping values in function a = %d, b = %d\n",a,b); // Formal parameters, a = 20, b = 10   
  18. }  

Output

Before swapping the values in main a = 10, b = 20

After swapping values in function a = 20, b = 10

After swapping values in main a = 10, b = 20  

Call by reference in C in hindi

  • Call by reference में, variable का पता फ़ंक्शन में वास्तविक पैरामीटर के रूप में call किया जाता है।
  • वास्तविक मापदंडों का पता modify होने के बाद से औपचारिक मापदंडों को बदलकर वास्तविक मापदंडों के मूल्य को modify किया जा सकता है।
  • Call by reference में, memory आवंटन औपचारिक मापदंडों और वास्तविक मापदंडों दोनों के लिए समान है। फ़ंक्शन में सभी ऑपरेशन वास्तविक मापदंडों के पते पर संग्रहीत मूल्य पर किए जाते हैं, और modified value उसी पते पर संग्रहीत होता है।

Consider the following example for the call by reference.

  1. #include<stdio.h>  
  2. void change(int *num) {    
  3.     printf("Before adding value inside function num=%d \n",*num);    
  4.     (*num) += 100;    
  5.     printf("After adding value inside function num=%d \n", *num);    
  6. }      
  7. int main() {    
  8.     int x=100;    
  9.     printf("Before function call x=%d \n", x);    
  10.     change(&x);//passing reference in function    
  11.     printf("After function call x=%d \n", x);    
  12. return 0;  
  13. }    

Output

Before function call x=100

Before adding value inside function num=100

After adding value inside function num=200

After function call x=200

Call by reference Example: Swapping the values of the two variables

  1. #include <stdio.h>  
  2. void swap(int *, int *); //prototype of the function   
  3. int main()  
  4. {  
  5.     int a = 10;  
  6.     int b = 20;   
  7.     printf("Before swapping the values in main a = %d, b = %d\n",a,b); // printing the value of a and b in main  
  8.     swap(&a,&b);  
  9.     printf("After swapping values in main a = %d, b = %d\n",a,b); // The values of actual parameters do change in call by reference, a = 10, b = 20  
  10. }  
  11. void swap (int *a, int *b)  
  12. {  
  13.     int temp;   
  14.     temp = *a;  
  15.     *a=*b;  
  16.     *b=temp;  
  17.     printf("After swapping values in function a = %d, b = %d\n",*a,*b); // Formal parameters, a = 20, b = 10   
  18. }  

Output

Before swapping the values in main a = 10, b = 20

After swapping values in function a = 20, b = 10

After swapping values in main a = 20, b = 10  

Leave a Reply

DMCA.com Protection Status