2010-03-20 12 views
8

मान लीजिए कि मेरे पास सी ++ में एक संरचना है जिसमें एक नाम और संख्या है, उदा।डिफ़ॉल्ट असाइनमेंट ऑपरेटर संरचना में कैसे काम करता है?

struct person { 

char name[20]; 

int ssn; 

}; 

मान लीजिए मैं दो व्यक्ति चर घोषित:

person a; 

person b; 

जहां a.name = "जॉर्ज", a.ssn = 1, और b.name = "फ्रेड" और b.ssn = 2 ।

कोड

a = b; 

printf("%s %d\n",a.name, a.ssn); 
+9

वहाँ एक सवाल ही नहीं कहीं है? – Turtle

+1

स्काईडोर का मानना ​​है कि एसओ किताबें पढ़ने या यहां तक ​​कि सोचने के लिए एक प्रतिस्थापन है। 12 9 प्रश्न - शून्य उत्तर। –

+0

किताबों की बात करते हुए, क्या मैं आपको http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326973/ref=sr_1_1?ie=UTF8&s=books&qid=1269107822&sr=8-1 – wheaties

उत्तर

22

डिफ़ॉल्ट असाइनमेंट ऑपरेटर एक सदस्य के लिहाज से प्रत्येक सदस्य की पुनरावर्ती काम करता है में बाद में मान लीजिए।

+0

1 संक्षिप्त, वर्णनात्मक उत्तर – Sam

+0

में सही उत्तर मैंने देखा है यहां एक पंक्ति वाले लोगों के बीच। – hkBattousai

8

मूल्यों की प्रतिलिपि बनाने के लिए C++ में डिफ़ॉल्ट असाइनमेंट ऑपरेटर Memberwise Assignment का उपयोग करता है। यह प्रभावी रूप से सभी सदस्यों को एक दूसरे को असाइन करता है। इस मामले में बी के समान मूल्य होने का कारण होगा।

उदाहरण के लिए

a = b; 
printf("%s\n", b.name); // Prints: George 
b.name[0]='T'; 
printf("%s\n", a.Name); // Prints George 
printf("%s\n", b.name); // Prints Teorge 
संबंधित मुद्दे