डेविड जे मालन: चलो में एक प्रोग्राम लिखने दो. हम मूल्यों का स्वैप करने की कोशिश है जो दो चर, एक्स और वाई. अग्रिम में, मैं बहुत लिखा है पहले से ही इस कार्यक्रम का. सबसे पहले, मैं एक चर, x घोषित, और, इसमें 1 मूल्य की दुकान. तब मैं चर y घोषणा और इसमें मूल्य, 2 स्टोर. तब मैं प्रदर्शित करने के लिए printf के साथ आगे बढ़ना उन दो चरों के मान. तो मैं एक और printf के साथ दावा उन चर गमागमन किया जाना है. तब मैं स्वैप नामक एक समारोह कॉल. और फिर मैं दावा है कि चर बदली की गई है. और फिर मैं बाहर प्रिंट कि क्या मैं दावा एक्स और वाई के नए मान रहे हैं. अब इस समारोह स्वैप क्या है? यह सी. के साथ आता है कि कुछ नहीं है दरअसल, हम के शीर्ष पर देखने के लिए अगर मेरे फ़ाइल, आपको मैं घोषित किया है कि ध्यान देंगे इस समारोह स्वैप के लिए एक प्रोटोटाइप यह दो ints लेता है कि निर्दिष्ट मनमाने ढंग से ए और बी कहा जाता है, और इस समारोह कुछ भी वापस नहीं करता है. तो शायद, यह जो यह कहते हैं स्वैप एक और बी के मूल्यों में. चलो अब स्वैप लागू करते हैं. सबसे पहले, मैं एक अस्थायी घोषित करने के लिए जा रहा हूँ चर और इसे करने के लिए आवंटित एक में मूल्य है, हालांकि मैं अभी कर सकता के रूप में आसानी से यह बी में संग्रहीत. मैं तो मान बदलने के लिए जा रहा हूँ एक बी में बराबर हो. और फिर अंत में, मैं बदलने के लिए जा रहा हूँ बी का मूल्य क्या एक था लेकिन है होना करने के लिए अब अस्थायी में. अब मुझे लगता है मैं अभी क्या किया है दावा तार्किक रूप से सही है. मैं, एक अस्थायी चर में संग्रहीत किया है फिर बी के होने के लिए एक के मूल्य बदल गया है, और क्या एक की थी होने के लिए बी के मूल्य बदल दिया है. लेकिन मैं संकलन और इस चलाते समय कार्यक्रम, मैं नहीं है कि चिंता मैं क्या देख जा रहा है. , कोई स्वैप बनाओ. डॉट, कोई स्वैप स्लेश. और दुर्भाग्य से, printf के अनुसार, एक्स और वाई के मूल्य भी हम गमागमन होने का दावा करने के बाद उन्हें अभी भी 1 और 2 है. अब ऐसा क्यों है? खैर, यह पता चला है कि मुख्य रूप से, जब हम में गुजर रहा है, इस समारोह स्वैप कॉल तर्क के रूप में एक्स और वाई, यह वास्तव में है एक्स और वाई की प्रतियां कि स्वैप में पारित कर रहे हैं. अर्थात्, उनके मूल्यों को 1 और 2 हैं ए और बी के रूप में स्वैप में पारित कर दिया. और यह हम अंततः हो कि ए और बी है मुख्य में गमागमन. यही कारण है कि 2 1 बन जाता है, 1 2 हो जाता है. लेकिन स्वैप नहीं लौटने का महत्व है क्योंकि और क्योंकि यह एक्स की प्रतियां प्राप्त और y, यह व्यवहार किया है एक्स और वाई पर कोई प्रभाव नहीं. दरअसल, ए और बी, तो बात scoped रहे हैं, एक्स और वाई रहते हैं, जबकि स्वैप करने के लिए मुख्य करने के लिए scoped. तो हम एक समस्या है. लेकिन यह कैसे तय करने के लिए?