কম্পিউটার টিউটোরিয়াল

সি ভাষায় বিভিন্ন স্টোরেজ ক্লাস


সমস্যা

সি ভাষায় কী কী স্টোরেজ ক্লাস আছে? প্রোগ্রামসহ ব্যাখ্যা করুন।

সমাধান

একটি স্টোরেজ ক্লাস ডিফাইন করা হয় ভেরিয়েবল বা ফাংশনের স্কোপ ও লাইফটাইম যেটি একটি সি প্রোগ্রামে উপস্থিত থাকে।

স্টোরেজ ক্লাস

সি-তে স্টোরেজ ক্লাসগুলো নিম্নরূপ −

  • auto
  • extern
  • static
  • register

অটোমেটিক ভেরিয়েবল/লোকাল ভেরিয়েবল

  • কীওয়ার্ড − auto
  • এগুলোক লোকাল ভেরিয়েবলও বলা হয়
  • স্কোপ −
    • একটি লোকাল ভেরিয়েবলের স্কোপ সেই ব্লকের মধ্যে উপলব্ধ থাকে যেখানে সেগুলো ডিক্লেয়ার করা হয়েছে।

    • এই ভেরিয়েবলগুলো একটি ব্লকের ভেতরে ডিক্লেয়ার করা হয়।

  • ডিফল্ট ভ্যালু − গার্বেজ ভ্যালু

উদাহরণ

#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

গ্লোবাল ভেরিয়েবল/এক্সটার্নাল ভেরিয়েবল

  • কীওয়ার্ড − extern
  • এই ভেরিয়েবলগুলো ব্লকের বাইরে ডিক্লেয়ার করা হয় তাই এগুলোক গ্লোবাল ভেরিয়েবলও বলা হয়।

  • স্কোপ − একটি গ্লোবাল ভেরিয়েবলের স্কোপ পুরো প্রোগ্রামে উপলব্ধ।

  • ডিফল্ট ভ্যালু − শূন্য

উদাহরণ

#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

স্ট্যাটিক ভেরিয়েবল

  • কীওয়ার্ড − static
  • স্কোপ − একটি স্ট্যাটিক ভেরিয়েবলের স্কোপ হলো এটি প্রোগ্রাম চলাকালীন এবং ফাংশন কলের মাঝপথে তার মান ধরে রাখে।
  • স্ট্যাটিক ভেরিয়েবল শুধু একবার ইনিশিয়ালাইজ হয়।
  • ডিফল্ট ভ্যালু − শূন্য

উদাহরণ

#include<stdio.h> main (){    inc ();    inc ();    inc (); } inc (){    static int i =1;    printf ("%d", i);    i++; }

আউটপুট

1    2    3

রেজিস্টার ভেরিয়েবল

  • কীওয়ার্ড − register
  • রেজিস্টার ভেরিয়েবলের মান সিপিইউ রেজিস্টারে সংরক্ষিত হয় সাধারণ ভেরিয়েবলের মত মেমোরিতে না।

  • রেজিস্টার হলো সিপিইউ-তে আস্থায়ী স্টোরেজ ইউনিট।

উদাহরণ

#include<stdio.h> main (){    register int i;    for (i=1; i< =5; i++)       printf ("%d",i); }

আউটপুট

1 2 3 4 5

  1. সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং এক্সপ্রেশন কী কী?

  2. সি ভাষায় বিভিন্ন সার্চিং টেকনিক কী কী?

  3. C++-এ ভেরিয়েবলের স্টোরেজ ক্লাস

  4. পাইথন ক্লাসে 'প্রাইভেট' ভেরিয়েবল আছে কি?