इस संदर्भ में एक संदर्भ है, & चर एक संदर्भ बनाता है।
आमतौर पर, जब आप किसी फ़ंक्शन में एक चर को पास करते हैं, तो चर की प्रतिलिपि बनाई जाती है और फ़ंक्शन प्रतिलिपि पर काम करता है। जब फ़ंक्शन वापस आता है, तो आपका मूल चर अपरिवर्तित होता है। जब आप कोई संदर्भ पास करते हैं, तो कोई प्रतिलिपि नहीं बनाई जाती है और फ़ंक्शन द्वारा किए गए परिवर्तन फ़ंक्शन रिटर्न के बाद भी दिखाई देते हैं।
सी संदर्भ नहीं है, लेकिन एक सी ++ संदर्भ कार्यात्मक सी में सूचक के रूप में एक ही है सच में फर्क सिर्फ इतना संकेत दिए गए हैं जब आप उन्हें इस्तेमाल dereferenced किया जाना है वह यह है कि:
*filename = "file.wav";
लेकिन संदर्भ इस्तेमाल किया जा सकता है जैसे कि वे मूल चर थे:
filename = "file.wav";
प्रत्यक्ष तौर पर, संदर्भ कभी नहीं अशक्त होने की अपेक्षा की जाती है, हालांकि यह असंभव नहीं है कि ऐसा करने के लिए।
बराबर सी समारोह होगा:
void read_wav(const char* filename)
{
}
इसका कारण यह है सी string
जरूरत नहीं है। सी में सामान्य अभ्यास एक स्ट्रिंग की आवश्यकता होने पर वर्णों की एक सरणी में पॉइंटर भेजना है। सी ++ में रूप में, आप एक स्ट्रिंग निरंतर
read_wav("file.wav");
प्रकार const char*
है टाइप करता है, तो।
http://en.wikipedia.org समान है/विकी/संदर्भ_ (सी% 2 बी% 2 बी) –
@Tim Medora के रूप में http://en.wikipedia.org/wiki/Reference_%28C%2B%2B%29 (लेकिन मैंने लिंक को सही किया है;)) –
@ हर्नान एशे - पेस्ट मेरे हिस्से पर असफल ... धन्यवाद! –