সমস্যা
সি ল্যাঙ্গুয়েজে বিভিন্ন স্টোরেজ ক্লাস কি কি? প্রোগ্রামগুলির সাথে তাদের ব্যাখ্যা করুন?
সমাধান
একটি স্টোরেজ ক্লাসকে ভেরিয়েবলের স্কোপ এবং লাইফ-টাইম বা সি প্রোগ্রামের মধ্যে উপস্থিত ফাংশন হিসাবে সংজ্ঞায়িত করা হয়৷
স্টোরেজ ক্লাস
C −
-এ স্টোরেজ ক্লাসগুলি নিম্নরূপ- অটো
- বহিরাগত
- স্থির
- রেজিস্টার করুন
স্বয়ংক্রিয় ভেরিয়েবল/স্থানীয় ভেরিয়েবল
- কীওয়ার্ড - স্বয়ংক্রিয়
- এগুলিকে স্থানীয় ভেরিয়েবলও বলা হয়
- স্কোপ −
-
একটি স্থানীয় ভেরিয়েবলের স্কোপ যে ব্লকে ঘোষণা করা হয়েছে তার মধ্যে পাওয়া যায়।
-
এই ভেরিয়েবলগুলি একটি ব্লকের ভিতরে ঘোষণা করা হয়
-
- ডিফল্ট মান - আবর্জনা মান
উদাহরণ
#include<stdio.h> void main (){ auto int i=1;{ auto int i=2;{ auto int i=3; printf ("%d",i); } printf("%d", i); } printf("%d", i); }
আউটপুট
3 2 1
গ্লোবাল ভেরিয়েবল/বাহ্যিক ভেরিয়েবল
- কীওয়ার্ড − বাহ্যিক
-
এই ভেরিয়েবলগুলি ব্লকের বাইরে ঘোষণা করা হয় এবং তাই এগুলিকে গ্লোবাল ভেরিয়েবলও বলা হয়
-
স্কোপ − একটি গ্লোবাল ভেরিয়েবলের স্কোপ পুরো প্রোগ্রাম জুড়ে পাওয়া যায়।
- ডিফল্ট মান - শূন্য
উদাহরণ
#include<stdio.h> extern int i =1; /* this ‘i’ is available throughout program */ main (){ int i = 3; /* this ‘i' available only in main */ printf ("%d", i); fun (); } fun (){ printf ("%d", i); }
আউটপুট
31
স্ট্যাটিক ভেরিয়েবল
- কীওয়ার্ড - স্ট্যাটিক
- স্কোপ − একটি স্ট্যাটিক ভেরিয়েবলের স্কোপ হল এটি পুরো প্রোগ্রাম জুড়ে এবং ফাংশন কলের মধ্যে এর মান বজায় রাখে৷
- স্ট্যাটিক ভেরিয়েবল শুধুমাত্র একবার শুরু করা হয়।
- ডিফল্ট মান - শূন্য
উদাহরণ
#include<stdio.h> main (){ inc (); inc (); inc (); } inc (){ static int i =1; printf ("%d", i); i++; }
আউটপুট
1 2 3
ভেরিয়েবল নিবন্ধন করুন
- কীওয়ার্ড - নিবন্ধন করুন
-
রেজিস্টার ভেরিয়েবলের মানগুলি মেমরির পরিবর্তে CPU রেজিস্টারে সংরক্ষণ করা হয় যেখানে সাধারণ ভেরিয়েবলগুলি সংরক্ষণ করা হয়৷
-
রেজিস্টার হল CPU-তে অস্থায়ী স্টোরেজ ইউনিট।
উদাহরণ
#include<stdio.h> main (){ register int i; for (i=1; i< =5; i++) printf ("%d",i); }এর জন্য
আউটপুট
1 2 3 4 5