C प्रोग्रामिंग लैंग्वेज में पास बाय रेफरेंस वे एड्रेस होते हैं जिन्हें तर्क के रूप में भेजा जाता है।
एल्गोरिदम
C भाषा में पास बाय वैल्यू की कार्यप्रणाली को समझाने के लिए नीचे एक एल्गोरिथम दिया गया है।
START Step 1: Declare a function with pointer variables that to be called. Step 2: Declare variables a,b. Step 3: Enter two variables a,b at runtime. Step 4: Calling function with pass by reference. jump to step 6 Step 5: Print the result values a,b. Step 6: Called function swap having address as arguments. i. Declare temp variable ii. Temp=*a iii. *a=*b iv. *b=temp STOP
उदाहरण कार्यक्रम
पास बाय रेफरेंस का उपयोग करके दो नंबरों को स्वैप करने के लिए सी प्रोग्राम निम्नलिखित है -
#include<stdio.h> void main(){ void swap(int *,int *); int a,b; printf("enter 2 numbers"); scanf("%d%d",&a,&b); printf("Before swapping a=%d b=%d",a,b); swap(&a, &b); printf("after swapping a=%d, b=%d",a,b); } void swap(int *a,int *b){ int t; t=*a; *a=*b; // *a = (*a + *b) – (*b = * a); *b=t; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
enter 2 numbers 10 20 Before swapping a=10 b=20 After swapping a=20 b=10
पास बाय रेफरेंस के बारे में अधिक जानने के लिए एक और उदाहरण लेते हैं।
उदाहरण
संदर्भ द्वारा कॉल का उपयोग करके या संदर्भ द्वारा पास करके प्रत्येक कॉल के लिए 5 से मूल्य बढ़ाने के लिए सी प्रोग्राम निम्नलिखित है।
#include <stdio.h> void inc(int *num){ //increment is done //on the address where value of num is stored. *num = *num+5; // return(*num); } int main(){ int a=20,b=30,c=40; // passing the address of variable a,b,c inc(&a); inc(&b); inc(&c); printf("Value of a is: %d\n", a); printf("Value of b is: %d\n", b); printf("Value of c is: %d\n", c); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Value of a is: 25 Value of b is: 35 Value of c is: 45