मैं सभी सी प्रोग्रामिंग के साथ नए हूं और मुझे एक सवाल है पर बात करने के लिए आदेश में सूचक नकल करने,कैसे एक ही वस्तु
अगर मैं उदाहरण के लिए एक struct है - और मैं इस पर ओर इशारा करते हुए हूँ, मैं एक ही डेटा पर इंगित करने के लिए एक नया सूचक बनाना चाहता हूं, लेकिन दो बिंदुओं के लिए एक ही वस्तु पर इंगित करने के लिए नहीं। मैं संरचना में हर क्षेत्र को कॉपी किए बिना ऐसा कैसे कर सकता हूं?
typedef struct
{
int x;
int y;
int z;
}mySTRUCT;
mySTRUCT *a;
mySTRUCT *b;
a->x = 1;
a->y = 2;
a->z = 3;
और अब मैं ख एक ही डेटा
b = *a
यह सही नहीं है पर बात करने के लिए चाहते हैं, और संकलक मुझ पर चिल्ला रहा है
किसी भी मदद बहुत अच्छा होगा! धन्यवाद :)
यह क्यों है * बी = * ए और नहीं बी = * ए? मैं अंतर के बीच अंतर नहीं समझ सकता: बी = ए, * बी = ए, बी = * ए, * बी = * ए। क्या मुझे एक संक्षिप्त स्पष्टीकरण मिल सकता है? – user1386966
@ उपयोगकर्ता 1386966: 'ए' और' बी' पॉइंटर्स हैं। '* ए' और' * बी' वे चीजें हैं जिन्हें वे इंगित करते हैं। आप 'बी' की ओर इशारा करते हुए 'ए' द्वारा इंगित चीज की प्रतिलिपि बनाना चाहते हैं। इसलिए आप '* बी = * ए' लिखते हैं। 'बी = ए 'सूचक' बी 'को' ए' के समान मान रखने के लिए बदलता है, जो कि 'बी' को बदलने के लिए एक और तरीका है जो ''' को इंगित करता है। 'बी = * ए' और' * बी = ए' व्यर्थ हैं, क्योंकि आप एक सूचक को एक सूचक के बराबर नहीं बना सकते हैं। –
मेरा सामान्य सादृश्य, बीटीडब्ल्यू, यह है कि एक सूचक कागज पर एक सड़क के पते के साथ कागज के टुकड़े की तरह है। यह बात जो इंगित करती है (उर्फ "रेफरेंड") एक इमारत की तरह है। आप किसी इमारत ('* बी) 'को उस चीज़ के साथ भ्रमित नहीं करेंगे जिसमें इमारत का पता लिखा गया है (' बी')। '* बी = * ए' का अर्थ है" बी 'पर पते पर एक इमारत का निर्माण, और इसे इमारत के समान बनाओ जिसका पता' ए 'पर है। 'बी = ए' का अर्थ है" ''' पर लिखा गया पता कॉपी करें "बी'"। समानता कमजोर होती है जब आप ध्यान देते हैं कि सी में आप 'ए' के लिए एक सूचक ले सकते हैं - यहां तक कि पेपर के टुकड़े भी सी –