একটি কাল্পনিক বিশ্বে কাল্পনিক নাগরিকত্ব এবং প্রোগ্রামিং এর ভেরিয়েবল স্কোপ

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

    এর ভেরিয়েবল স্কোপ হল block1 এ।
    N.B: বাস্তবে এশিয়া মহাদেশের নাগরিকত্ব বলতে কিছু নাই।উপরের উদাহরণটা শুধু ভেরিয়েবল স্কোপ কি সেটা বুঝানোর জন্য।

    যেমন নিচের দুটি প্রোগ্রাম সফলভাবে রান করবেঃ


    • #include<stdio.h>

      int kawsar;
      void main()
      {
      int santo;
      {
      int robin;
      kawsar=10;
      }
      kawsar=100;
      printf("kawasr = %d",kawsar);
      }

      output


      kawasr = 100


    • #include<stdio.h>
      int kawsar;
      void main()
      {
      int santo;
      {
      int robin;
      santo=10;
      }

      printf("santo = %d",santo);
      }

      output


      santo=10


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

    #include<stdio.h>

    int kawsar;
    void main()
    {
    int santo;
    {
    int robin;
    robin=10;
    }

    printf("robin = %d",robin); /* robin is not acceesable in this block. So you will get an error message*/
    }


লেখাটি আরও সুন্দর ফরম্যাটে দেখতে নিচের লিংকে ক্লিক করুনঃ

পোস্ট সম্পর্কিত সমস্যার জন্য মন্তব্য দিন।ডাউনলোড লিঙ্ক এ সমস্যা জন্য ইনবক্স করুন Aimzworld007
ConversionConversion EmoticonEmoticon

:)
:(
=(
^_^
:D
=D
=)D
|o|
@@,
;)
:-bd
:-d
:p
:ng
:lv
Thanks for your comment