স্টোরেজ ক্লাস ভেরিয়েবলের স্কোপ, লাইফটাইম এবং বাইন্ডিং নির্দেশ করে।
একটি ভেরিয়েবল সম্পূর্ণরূপে ডিফাইন করতে, এর 'টাইপ' ছাড়াও এর স্টোরেজ ক্লাস উল্লেখ করতে হয়।
একটি ভেরিয়েবল নাম কম্পিউটার মেমরির একটি ফিজিক্যাল লোকেশন চিহ্নিত করে, যেখানে ভেরিয়েবলের ভ্যালু সংরক্ষণের জন্য বিটের একটি সংগ্রহ অ্যালোকেট করা হয়।
স্টোরেজ ক্লাস আমাদের নিচের বিষয়গুলো জানায়:
- ভেরিয়েবল কোথায় স্টোর হবে (মেমরিতে নাকি CPU রেজিস্টারে)?
- যদি কিছু ইনিশিয়ালাইজ না করা হয়, তবে ভেরিয়েবলের ইনিশিয়াল ভ্যালু কী হবে?
- ভেরিয়েবলের স্কোপ কী (কোথায় এটি অ্যাক্সেস করা যাবে)?
- ভেরিয়েবলের লাইফ কী?
স্কোপ (Scope)
স্কোপ একটি অবজেক্টের দৃশ্যমানতা নির্ধারণ করে। এটি নির্ধারণ করে যে একটি অবজেক্ট কোথায় অ্যাক্সেস করা যাবে।
স্কোপ ভেরিয়েবল লোকাল বা গ্লোবাল হতে পারে।
- ব্লকের ভেতরে ডিফাইন করা ভেরিয়েবলগুলো লোকাল স্কোপ থাকে। সেগুলো শুধু সেই ব্লকে দৃশ্যমান যেখানে সেগুলো ডিফাইন করা হয়েছে।
- গ্লোবাল এলিয়ারতে ডিফাইন করা ভেরিয়েবল তাদের ডেফিনিশন থেকে প্রোগ্রামের শেষ পর্যন্ত দৃশ্যমান থাকে। এটি প্রোগ্রামের সব জায়গা থেকে দৃশ্যমান।
উদাহরণ
ভেরিয়েবল স্কোপের C প্রোগ্রাম:
#include<stdio.h> int c= 30; /* global area */ main ( ) { int a = 10; //local scope// printf ("a=%d,c=%d"a,c); fun ( ); } fun ( ){ printf ("c=%d",c); //global variable }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের আউটপুটটি দেখায়:
a =10, c = 30 c = 30
উদাহরণ
লোকাল এবং গ্লোবাল ভেরিয়েবলের C প্রোগ্রাম:
#include<stdio.h> int a,b; a=1,b=2; main() { int c,d; printf("enter c and d values:"); scanf("%d%d",&c,&d); c=c+d; //local variables b=a*b; //global variables printf("c value is:%d\n",c); printf("b value is:%d\n",b); }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের আউটপুটটি দেখায়:
enter c and d values:4 7 c value is:11 b value is:2