C++ Functions | Call by value and reference in C++
Call by value and call by reference in C++
Call by value and reference in C++
सी भाषा में कार्य करने के लिए मूल्य या डेटा पास करने के दो तरीके हैं: मूल्य से कॉल करें और संदर्भ द्वारा कॉल करें। मूल मूल्य को कॉल बाय वैल्यू में संशोधित नहीं किया गया है, लेकिन इसे संदर्भ द्वारा कॉल में संशोधित किया गया है।
आइए एक-एक करके C++ भाषा में कॉल बाय वैल्यू और कॉल बाय रेफरेंस को समझते हैं।
Call by value in C++ -सी ++ में मूल्य से कॉल करें
मूल्य द्वारा कॉल में, मूल मूल्य संशोधित नहीं किया जाता है।
कॉल बाय वैल्यू में, फ़ंक्शन को पास किया जा रहा मान स्टैक मेमोरी लोकेशन में फ़ंक्शन पैरामीटर द्वारा स्थानीय रूप से संग्रहीत किया जाता है। यदि आप फ़ंक्शन पैरामीटर का मान बदलते हैं, तो यह केवल वर्तमान फ़ंक्शन के लिए बदला जाता है। यह मुख्य() जैसे कॉलर विधि के अंदर चर के मान को नहीं बदलेगा।
आइए नीचे दिए गए उदाहरण से C++ भाषा में कॉल बाय वैल्यू की अवधारणा को समझने की कोशिश करें:
#include <iostream>
using namespace std;
void change(int data);
int main()
{
int data = 3;
change(data);
cout << "Value of the data is: " << data<< endl;
return 0;
}
void change(int data)
{
data = 5;
}
Output:-
Value of the data is: 3
Call by reference in C++ -C++ में संदर्भ द्वारा कॉल करें
संदर्भ द्वारा कॉल में, मूल मान संशोधित किया जाता है क्योंकि हम संदर्भ (पता) पास करते हैं।
यहां, फ़ंक्शन में मान का पता पारित किया जाता है, इसलिए वास्तविक और औपचारिक तर्क समान पता स्थान साझा करते हैं। इसलिए, फ़ंक्शन के अंदर बदला गया मान, फ़ंक्शन के अंदर और साथ ही बाहर भी परिलक्षित होता है।
नोट: कॉल को संदर्भ द्वारा समझने के लिए, आपको पॉइंटर्स का बुनियादी ज्ञान होना चाहिए।
आइए नीचे दिए गए उदाहरण द्वारा C++ भाषा में संदर्भ द्वारा कॉल की अवधारणा को समझने का प्रयास करें:
#include<iostream>
using namespace std;
void swap(int *x, int *y)
{
int swap;
swap=*x;
*x=*y;
*y=swap;
}
int main()
{
int x=500, y=100;
swap(&x, &y); // passing value to function
cout<<"Value of x is: "<<x<<endl;
cout<<"Value of y is: "<<y<<endl;
return 0;
}
Output:-
Value of x is: 100
Value of y is: 500