1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,700 >> डेविड जे मालन: चलो में एक प्रोग्राम लिखने दो. हम मूल्यों का स्वैप करने की कोशिश है जो 3 00:00:02,700 --> 00:00:04,970 दो चर, एक्स और वाई. 4 00:00:04,970 --> 00:00:07,490 अग्रिम में, मैं बहुत लिखा है पहले से ही इस कार्यक्रम का. 5 00:00:07,490 --> 00:00:11,130 सबसे पहले, मैं एक चर, x घोषित, और, इसमें 1 मूल्य की दुकान. 6 00:00:11,130 --> 00:00:14,120 तब मैं चर y घोषणा और इसमें मूल्य, 2 स्टोर. 7 00:00:14,120 --> 00:00:17,700 >> तब मैं प्रदर्शित करने के लिए printf के साथ आगे बढ़ना उन दो चरों के मान. 8 00:00:17,700 --> 00:00:21,090 तो मैं एक और printf के साथ दावा उन चर गमागमन किया जाना है. 9 00:00:21,090 --> 00:00:23,690 तब मैं स्वैप नामक एक समारोह कॉल. 10 00:00:23,690 --> 00:00:26,100 और फिर मैं दावा है कि चर बदली की गई है. 11 00:00:26,100 --> 00:00:30,610 और फिर मैं बाहर प्रिंट कि क्या मैं दावा एक्स और वाई के नए मान रहे हैं. 12 00:00:30,610 --> 00:00:32,030 >> अब इस समारोह स्वैप क्या है? 13 00:00:32,030 --> 00:00:34,970 यह सी. के साथ आता है कि कुछ नहीं है दरअसल, हम के शीर्ष पर देखने के लिए अगर मेरे 14 00:00:34,970 --> 00:00:38,850 फ़ाइल, आपको मैं घोषित किया है कि ध्यान देंगे इस समारोह स्वैप के लिए एक प्रोटोटाइप 15 00:00:38,850 --> 00:00:42,750 यह दो ints लेता है कि निर्दिष्ट मनमाने ढंग से ए और बी कहा जाता है, और इस 16 00:00:42,750 --> 00:00:44,300 समारोह कुछ भी वापस नहीं करता है. 17 00:00:44,300 --> 00:00:48,370 तो शायद, यह जो यह कहते हैं स्वैप एक और बी के मूल्यों में. 18 00:00:48,370 --> 00:00:50,170 चलो अब स्वैप लागू करते हैं. 19 00:00:50,170 --> 00:00:53,820 >> सबसे पहले, मैं एक अस्थायी घोषित करने के लिए जा रहा हूँ चर और इसे करने के लिए आवंटित 20 00:00:53,820 --> 00:00:57,260 एक में मूल्य है, हालांकि मैं अभी कर सकता के रूप में आसानी से यह बी में संग्रहीत. 21 00:00:57,260 --> 00:01:00,925 मैं तो मान बदलने के लिए जा रहा हूँ एक बी में बराबर हो. 22 00:01:00,925 --> 00:01:04,849 और फिर अंत में, मैं बदलने के लिए जा रहा हूँ बी का मूल्य क्या एक था लेकिन है होना करने के लिए 23 00:01:04,849 --> 00:01:06,340 अब अस्थायी में. 24 00:01:06,340 --> 00:01:08,910 >> अब मुझे लगता है मैं अभी क्या किया है दावा तार्किक रूप से सही है. 25 00:01:08,910 --> 00:01:12,780 मैं, एक अस्थायी चर में संग्रहीत किया है फिर बी के होने के लिए एक के मूल्य बदल गया है, और 26 00:01:12,780 --> 00:01:15,580 क्या एक की थी होने के लिए बी के मूल्य बदल दिया है. 27 00:01:15,580 --> 00:01:18,620 लेकिन मैं संकलन और इस चलाते समय कार्यक्रम, मैं नहीं है कि चिंता 28 00:01:18,620 --> 00:01:20,140 मैं क्या देख जा रहा है. 29 00:01:20,140 --> 00:01:21,625 >> , कोई स्वैप बनाओ. 30 00:01:21,625 --> 00:01:24,350 डॉट, कोई स्वैप स्लेश. 31 00:01:24,350 --> 00:01:27,560 और दुर्भाग्य से, printf के अनुसार, एक्स और वाई के मूल्य भी 32 00:01:27,560 --> 00:01:31,560 हम गमागमन होने का दावा करने के बाद उन्हें अभी भी 1 और 2 है. 33 00:01:31,560 --> 00:01:32,630 >> अब ऐसा क्यों है? 34 00:01:32,630 --> 00:01:36,160 खैर, यह पता चला है कि मुख्य रूप से, जब हम में गुजर रहा है, इस समारोह स्वैप कॉल 35 00:01:36,160 --> 00:01:39,960 तर्क के रूप में एक्स और वाई, यह वास्तव में है एक्स और वाई की प्रतियां कि 36 00:01:39,960 --> 00:01:41,310 स्वैप में पारित कर रहे हैं. 37 00:01:41,310 --> 00:01:45,430 अर्थात्, उनके मूल्यों को 1 और 2 हैं ए और बी के रूप में स्वैप में पारित कर दिया. 38 00:01:45,430 --> 00:01:48,590 और यह हम अंततः हो कि ए और बी है मुख्य में गमागमन. 39 00:01:48,590 --> 00:01:50,810 >> यही कारण है कि 2 1 बन जाता है, 1 2 हो जाता है. 40 00:01:50,810 --> 00:01:54,630 लेकिन स्वैप नहीं लौटने का महत्व है क्योंकि और क्योंकि यह एक्स की प्रतियां प्राप्त 41 00:01:54,630 --> 00:01:58,220 और y, यह व्यवहार किया है एक्स और वाई पर कोई प्रभाव नहीं. 42 00:01:58,220 --> 00:02:02,610 दरअसल, ए और बी, तो बात scoped रहे हैं, एक्स और वाई रहते हैं, जबकि स्वैप करने के लिए 43 00:02:02,610 --> 00:02:03,990 मुख्य करने के लिए scoped. 44 00:02:03,990 --> 00:02:05,070 >> तो हम एक समस्या है. 45 00:02:05,070 --> 00:02:06,320 लेकिन यह कैसे तय करने के लिए? 46 00:02:06,320 --> 00:02:08,312