ডেভিড জে MALAN: এর মধ্যে একটি প্রোগ্রাম লিখতে শুরু করা যাক আমরা মূল্যবোধের অদলবদল করার চেষ্টা যা দুটি ভেরিয়েবল, এক্স এবং ওয়াই. অগ্রিম, আমি অনেক কিছু লিখিত করেছি ইতিমধ্যে এই প্রোগ্রামের. প্রথমত, আমি একটি পরিবর্তনশীল, এক্স ডিক্লেয়ার, এবং, এটা মধ্যে 1 মূল্য সঞ্চয়. তারপর আমি পরিবর্তনশীল Y ঘোষণা এবং এটা মান, 2 সঞ্চয়. তারপর আমি প্রদর্শন printf, সাথে এগিয়ে ঐ দুটি ভেরিয়েবলের মান. এরপর আরো একটি printf সঙ্গে দাবি ঐ ভেরিয়েবল সোয়াপিং হবে. তারপর আমি swap 'নামক একটি ফাংশন কল. এবং তারপর আমি দাবি যে ভেরিয়েবল আনা হয়েছে. এবং তারপর আমি প্রিন্ট আউট যে কি আমি দাবি x এবং y এর নতুন মান. এখন এই ফাংশন swap 'কি? এটা সি সাথে কিছু না প্রকৃতপক্ষে, আমরা উপরে তাকান আমার ফাইল, আপনি আমি ঘোষণা করেছি বিজ্ঞপ্তি পাবেন এই ফাংশন swap 'র জন্য একটি প্রোটোটাইপ এটি দুটি ints লাগে যে উল্লেখ, ইচ্ছামত A এবং B বলা হয়, এবং এই ফাংশন কিছু ফেরত দেয় না. তাই সম্ভবতঃ, এটা এটা বলছেন কি বিনিময়সমূহ একটি এর এবং B এর মান. এর এখন swap 'বাস্তবায়ন করা. প্রথমত, আমি একটি অস্থায়ী ঘোষণা করা যাচ্ছে না পরিবর্তনশীল এবং এটি করার দায়িত্ব অর্পণ একটি মান, যদিও আমি ঠিক করতে পারে যত সহজে B সংরক্ষিত. আমি তখন মান পরিবর্তন করা যাচ্ছে না একটি বি এ যে সমান হবে. এবং তারপর সর্বশেষে, আমি পরিবর্তন করা যাচ্ছে না B এর মান কি একটা ছিল কিন্তু হয় হতে এখন temp মধ্যে. এখন আমি শুধু আমি সম্পন্ন করেছি দাবি কথাটি সঠিক. আমি একটি অস্থায়ী ভেরিয়েবল একটি সংরক্ষিত করেছি তারপর খ এর করা একটি এর মান পরিবর্তন করা, এবং কি এর ছিল বলে B এর মান পরিবর্তন. কিন্তু আমি কম্পাইল এবং এই রান যখন প্রোগ্রাম, আমি যে না চিন্তা করবেন কি আমি দেখতে যাচ্ছি. , কোন swap 'করুন. বিন্দু, কোন swap 'কাট. এবং দুর্ভাগ্যবশত, printf অনুযায়ী x এবং y এর মান, এমনকি আমরা সোয়াপিং করার দাবি পরে তাদের, এখনও 1 ও 2. এখন এটা কেন হয়? ওয়েল, দেখা যাচ্ছে যে মূল সালে, যখন আমরা কথা প্রসঙ্গে, এই ফাংশন swap 'কল আর্গুমেন্ট হিসাবে x এবং y, এটি আসলে এর x এবং y কপি করে swap 'র মধ্যে পাস হয়. যথা, তাদের মান 1 এবং 2 হয় A এবং B হিসাবে swap 'র মধ্যে পাস. এবং এটা আমরা শেষ পর্যন্ত যে A এবং B এর মূল মধ্যে সোয়াপিং. যে 2 1 পরিণত হয়, 1 2 পরিণত হয়. কিন্তু swap 'কোন রিটার্ন মান আছে, কারণ এবং কারণ এটি এক্স কপি পেয়েছি এবং y, এটা আচরণ করেছে এর এক্স এবং ওয়াই উপর কোনো প্রভাব. প্রকৃতপক্ষে, A এবং B, তাই কথা বলতে scoped হয়, x এবং y থাকা যেহেতু, বিনিময় করা প্রধান যাও scoped. সুতরাং আমরা একটি সমস্যা আছে. কিন্তু কিভাবে এটা ঠিক?