DAVID J. MALAN: میں ایک پروگرام لکھنے ہیں ہم اقدار کے تبادلہ کرنے کی کوشش کریں جس میں دو متغیر، X اور Y. پیشگی میں، میں نے بہت کچھ لکھا ہے پہلے ہی اس پروگرام کے. سب سے پہلے، میں ایک متغیر، ایکس کا اعلان، اور، اس میں 1 قیمت ذخیرہ. پھر میں نے متغیر Y کا اعلان اور اس میں قیمت، 2 ذخیرہ. اس کے بعد میں ظاہر کرنے کے لئے printf کے ساتھ آگے بڑھنے کے ان دو متغیر کی اقدار. پھر میں نے ایک اور printf کے ساتھ دعوی ان متغیرات گماگمن کی جائے. پھر میں تبدیل نامی ایک تقریب کو فون. اور پھر میں نے کا دعوی ہے کہ متغیر تبدیل کر دیا گیا ہے. اور پھر میں پرنٹ کیا میں نے کا دعوی X اور Y کی نئی اقدار ہیں. اب اس تقریب میں تبدیل کیا ہے؟ یہ سی کے ساتھ آتا ہے کہ کچھ نہیں ہے بے شک، ہم کے سب سے اوپر پر نظر ڈالیں تو میری فائل، آپ نے اعلان کیا ہے کہ محسوس کریں گے اس تقریب میں تبدیل ھو نے والے کے لئے ایک پروٹوٹائپ یہ دو ints کے لیتا ہے وضاحت کی، منمانے ایک بی اور کہا جاتا ہے، اور اس تقریب کچھ بھی واپس نہیں کرتا. تو شاید، یہ کیا کہتا ہے کرتا ہے سویپ ایک اور B کی اقدار میں. اب تبدیل ھو نے والے کو لاگو کرتے ہیں. سب سے پہلے، میں ایک عارضی اعلان کرنے جا رہا ہوں متغیر اور اس پر تفویض ایک میں قیمت، اگرچہ میں صرف کر سکتے ہیں کے طور پر آسانی سے B میں محفوظ کیا. میں اس وقت کی قیمت کو تبدیل کرنے جا رہا ہوں ایک بی میں اس کے برابر ہو. اور پھر آخر میں، میں تبدیل کرنے کے لئے جا رہا ہوں ب کی قیمت کیا تھا لیکن ہے ہونا اب TEMP میں. اب میں صرف کیا ہے کا دعوی منطقی طور پر درست ہے. میں، ایک عارضی متغیر میں محفوظ کیا جاتا ہے تو ب کے لئے ایک کی قیمت کو تبدیل، اور کیا کی تھی ہونا B کی قیمت کو تبدیل. لیکن میں مرتب اور اس کے چلانے، جب پروگرام، مجھے لگتا ہے کہ نہیں ہے فکر میں دیکھ رہا ہوں کیا جا رہا ہے. ، کوئی سویپ. ڈاٹ، کوئی تبدیل ھو نے والے سلیش. اور بدقسمتی سے، printf کے مطابق، X اور Y کی قدر، یہاں تک کہ ہم گماگمن کا دعوی کے بعد ان کے، اب بھی 1 اور 2 ہے. اب ایسا کیوں ہے؟ ٹھیک ہے، یہ پتہ چلتا ہے کہ اہم میں، جب ہم نے میں گزر، اس تقریب میں تبدیل ھو نے والے کال دلائل کے طور پر X اور Y، یہ اصل میں ہے X اور Y کی کاپیاں ہے تبدیل ھو نے والے میں گزر رہے ہیں. یعنی، ان کی اقدار 1 اور 2 ہیں A اور B کے طور پر تبدیل میں منظور. اور یہ کہ ہم آخر میں ہیں کہ ایک اور ب کے اہم گماگمن. 2 1 بن جاتا ہے، 1 2 ہو جاتا ہے، ہے. لیکن تبدیل نہیں واپسی قیمت ہے کیونکہ اور اس کی وجہ یہ x کی نقول موصول اور Y، یہ رویہ ہے ہے X اور Y پر کوئی اثر نہیں. بے شک، A اور B، تو بات کرنے scoped ہیں، X اور Y رہے جبکہ، تبادلہ اہم scoped. تو ہم نے ایک مسئلہ ہے. لیکن یہ کس طرح ٹھیک کرنے کے لئے؟