ভেরিয়েবল স্কোপ

 ‘{}’ কে একটা Block বলা হয়।একটা প্রোগ্রামে একটি বা একের অধিক block থাকতে পারে।যেমনঃ Block2 এর মধ্যেই block1 লুকিয়ে আছে। block1 কে বাংলাদেশ, block2 কে এশিয়া মহাদেশ আর block2 এর বাহিরের অংশটাকে সমগ্র বিশ্ব চিন্তা করুন এবং সেখানে নাগরিকত্ব অর্জনের পদ্ধতিটি ভিন্ন (কল্পনা করুন)। আপনি যদি বাংলাদেশের নাগরিকত্ব অর্জন করেন,তাহলে কিন্ত বাংলাদেশ ছাড়া এশিয়া মহাদেশের অন্য কোন দেশের নাগরিক সুবিধা পাবেনা।কিন্ত আপনি যদি এশিয়া মহাদেশের নাগরিকত্ব অর্জন করেন তাহলে এশিয়া মহাদেশের সব কয়টি দেশের নাগরিক সুবিধা আপনি পাবেন।আর আপনি যদি সমগ্র বিশ্বের নাগরিকত্ব অর্জন করেন তাহলে সারা বিশ্বের যে কোন দেশের নাগরিক সুবিধা পাবেন। অর্থাৎ variable1 , block1 এবং block2 এর মাঝে অনায়াসে ঘূরাফেরা করতে পারবে কিন্তু variable3 ইচ্ছে করলেই block2 অথবা block2 এর বাহিরে যেতে পারবে না, তবে block1 এ ঘুরাফেরা করতে পারবে। এখন উপরের চিত্রের ব্লকগুলো যদি আপনি সি প্রোগ্রামে ব্যবহার করেন তাহলে প্রোগ্রাম এর ভাষায় ‘variable1’হলো একটা int টাইপের ভেরিয়েবল যেটাকে globally ডিক্লেয়ার করা হয়েছে, ‘variable2’হলো আরেকটা int টাইপের ভেরিয়েবল যেটাকে local in block2 হিসেবে ডিক্লেয়ার করা হয়েছে এবং ‘variable3’হলো আরেকটা int টাইপের ভেরিয়েবল যেটাকে local in block1 হিসেবে ডিক্লেয়ার করা হয়েছে।তাই ‘variable1’ভেরিয়েবল কে প্রোগ্রাম এর যে কোন জায়গায় ব্যবহার করা যাবে।‘variable2’ভেরিয়েবল কে block2 তে ব্যবহার করা যাবে এবং block1 এ ব্যবহার করা যাবে।‘variable3’ভেরিয়েবল কে শুধু block1 এ ব্যবহার করা যাবে। এই যে একেকটা ভেরিয়েবল একেকটা ব্লকে সীমাবদ্ধ একেই বলে ভেরিয়েবল স্কোপ। যেমনঃ
 int variable3;
এর ভেরিয়েবল স্কোপ হল block1 এ। N.B: বাস্তবে এশিয়া মহাদেশের নাগরিকত্ব বলতে কিছু নাই।উপরের উদাহরণটা শুধু ভেরিয়েবল স্কোপ কি সেটা বুঝানোর জন্য। যেমন নিচের দুটি প্রোগ্রাম সফলভাবে রান করবেঃ

Code Example

OUTPUT

variable1 = 100

Code Example

OUTPUT

variable2=10

কিন্তু নিচের প্রোগ্রামটি এরর দেখাবেঃ