2010-11-29 14 views

उत्तर

12

वैचारिक रूप से, सी, के संदर्भ के बाद से संकेत दिए गए अन्य वस्तुओं के संदर्भ हैं।

संवैधानिक रूप से, सी में सी ++ के संदर्भ नहीं हैं।

+2

धन्यवाद, चीयर्स :) –

+2

गलत, अवधारणात्मक पॉइंटर्स और संदर्भ बिल्कुल अलग हैं। सूचक एक बीजगणितीय डेटा प्रकार शून्य और एक संदर्भ है। संदर्भ सिर्फ यही है, संदर्भ। निहितार्थ प्रकार सुरक्षा है - इसे तुरंत देखा जा सकता है यदि किसी फ़ंक्शन को कभी भी नल तर्क प्राप्त हो या नहीं। –

+0

@ हाय-एंजेल _Conceptually_, एक सूचक एक वस्तु का संदर्भ देता है। – sbi

27

नहीं, ऐसा नहीं है। इसमें पॉइंटर्स हैं, लेकिन वे काफी समान नहीं हैं।

विशेष रूप से, सी ++ में पास-बाय-रेफरेंस उपलब्ध होने के बजाय सी में सभी तर्क मूल्य से पारित होते हैं। बेशक, आप एक तरह से पास-दर-संदर्भ संकेत के माध्यम से अनुकरण कर सकते हैं:

void foo(int *x) 
{ 
    *x = 10; 
} 

... 

int y = 0; 
foo(&y); // Pass the pointer by value 
// The value of y is now 10 

संकेत और संदर्भ के बीच मतभेदों के बारे में अधिक जानकारी के लिए this SO question देखते हैं। (और कृपया मुझसे मत पूछें, क्योंकि मैं सी या सी ++ प्रोग्रामर नहीं हूं :)

+5

जॉन 'सी' प्रश्न में जॉन - अंधेरे पक्ष से वापस स्वागत है! –

+0

@ मार्टिन: यह लंबे समय तक नहीं होगा;) –

+1

@ मार्टिन, वही विचार था – JaredPar

संबंधित मुद्दे