C प्रोग्रामिंग भाषा में पास बाय रेफरेंस वे पते हैं जिन्हें आर्गुमेंट्स के रूप में भेजा जाता है।
एल्गोरिदम
C भाषा में पास बाय वैल्यू के कामकाज को समझाने के लिए एक एल्गोरिदम नीचे दिया गया है:
शुरुआत
चरण 1: कॉल किए जाने वाले फंक्शन को पॉइंटर वेरिएबल्स के साथ घोषित करें।
चरण 2: वेरिएबल्स a, b घोषित करें।
चरण 3: रनटाइम पर दो वेरिएबल्स a, b दर्ज करें।
चरण 4: पास बाय रेफरेंस के साथ फंक्शन कॉल करें। चरण 6 पर जाएं।
चरण 5: परिणाम मान a, b प्रिंट करें।
चरण 6: कॉल किया गया फंक्शन swap जिसके आर्गुमेंट्स पते हैं।
i. टेम्प वेरिएबल घोषित करें
ii. Temp = *a
iii. *a = *b
iv. *b = temp
समाप्ति
उदाहरण प्रोग्राम
निम्नलिखित C प्रोग्राम पास बाय रेफरेंस का उपयोग करके दो नंबरों को स्वैप करता है:
#include <stdio.h>
void swap(int *a, int *b) {
int t;
t = *a;
*a = *b;
*b = t;
}
int main() {
int a, b;
printf("2 नंबर दर्ज करें: ");
scanf("%d%d", &a, &b);
printf("स्वैपिंग से पहले a=%d b=%d", a, b);
swap(&a, &b);
printf("स्वैपिंग के बाद a=%d, b=%d", a, b);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:
2 नंबर दर्ज करें: 10 20 स्वैपिंग से पहले a=10 b=20 स्वैपिंग के बाद a=20 b=10
पास बाय रेफरेंस के बारे में अधिक जानने के लिए एक और उदाहरण लेते हैं।
उदाहरण
निम्नलिखित C प्रोग्राम कॉल बाय रेफरेंस या पास बाय रेफरेंस का उपयोग करके हर कॉल पर मान को 5 से बढ़ाता है।
#include <stdio.h>
void inc(int *num) {
// उस पते पर इंक्रीमेंट किया जाता है जहां num का मान स्टोर है
*num = *num + 5;
}
int main() {
int a = 20, b = 30, c = 40;
// वेरिएबल्स a, b, c के पते पास करना
inc(&a);
inc(&b);
inc(&c);
printf("a का मान है: %d\n", a);
printf("b का मान है: %d\n", b);
printf("c का मान है: %d\n", c);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:
a का मान है: 25 b का मान है: 35 c का मान है: 45