इसका मतलब है buf
एक सूचक का संदर्भ है, इसलिए इसका मूल्य बदला जा सकता है (साथ ही उस क्षेत्र का मूल्य जो यह इंगित कर रहा है)।
मैं सी में नहीं बल्कि बासी हूँ, लेकिन AFAIK वहाँ सी में कोई संदर्भ हैं और इस कोड को सी ++ (ध्यान दें प्रश्न मूल रूप से टैग किया गया था c) है।
उदाहरण के लिए:
void advance(char*& p, int i)
{
p += i; // change p
*p = toupper(*p); // change *p
}
int main() {
char arr[] = "hello world";
char* p = arr; // p -> "hello world";
advance(p, 6);
// p is now "World"
}
संपादित करें: टिप्पणी @brett अगर आप buff
करने के लिए NULL
असाइन कर सकते हैं पूछा और यदि ऐसा है तो जहां एक सूचक पर एक संदर्भ का उपयोग करने का फायदा है। मैं बेहतर दृश्यता के लिए यहां उत्तर दे रहा हूं
आप NULL
buff
पर असाइन कर सकते हैं। यह एक त्रुटि नहीं है। हर कोई क्या कह रहा है कि यदि आपने char **pBuff
का उपयोग किया है तो pBuff
NULL
(प्रकार char**
) या *pBuff
NULL
(प्रकार char*
) हो सकता है। char*& rBuff
का उपयोग करते समय rBuff
अभी भी NULL
(प्रकार char*
) हो सकता है, लेकिन char**
टाइप करने वाली कोई इकाई नहीं है जो NULL
हो सकती है।
ध्यान दें कि यह सी ++ के लिए विशिष्ट है और सी में अर्थहीन है। आप टैग को बदलना चाहेंगे। –
टैग को "C++" पर स्विच किया गया, क्योंकि सी में संदर्भ नहीं हैं। –
ए [पुस्तक] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) आपको इंटरनेट पर स्क्रैप लेने से अधिक जानकारी का एक पूर्ण सेट प्रदान करेगा। – GManNickG