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

সি/সি++-এ গ্লোবাল ও স্ট্যাটিক ভেরিয়েবল ডিফল্ট ভ্যালুতে কেন ইনিশিয়ালাইজ হয়


গ্লোবাল ও স্ট্যাটিক ভেরিয়েবল ডিফল্ট ভ্যালুতে ইনিশিয়ালাইজ হয় কারণ এটি সি বা সি++ স্ট্যান্ডرده আছে এবং কম্পাইল টাইমে শূন্য অ্যাসাইন করা ফ্রি (খরচহীন)। স্ট্যাটিক ও গ্লোবাল ভেরিয়েবল দুটোই জেনারেটেড অবজেক্ট কোডে একইভাবে আচরণ করে। এই ভেরিয়েবলগুলো .bss সেকশনে অ্যালোকেট হয় এবং লোডিংয়ের সময় ভেরিয়েবলগুলোর জন্য আলট করা কনস্ট্যান্টগুলো থেকে মেমরি অ্যালোকেট করে।

গ্লোবাল ও স্ট্যাটিক ভেরিয়েবলের উদাহরণ:

উদাহরণ

#include <stdio.h>
int a;
static int b;
int main() {
    int x;
    static int y;
    int z = 28;
    printf("The default value of global variable a : %d", a);
    printf("\nThe default value of global static variable b : %d", b);
    printf("\nThe default value of local variable x : %d", x);
    printf("\nThe default value of local static variable y : %d", y);
    printf("\nThe value of local variable z : %d", z);
    return 0;
}

আউটপুট

The default value of global variable a : 0
The default value of global static variable b : 0
The default value of local variable x : 0
The default value of local static variable y : 0
The value of local variable z : 28

উপরের প্রোগ্রামে গ্লোবাল ভেরিয়েবলগুলো main() ফাংশনের বাইরে ডিক্লেয়ার করা হয়েছে এবং 그중 একটি স্ট্যাটিক। তিনটি লোকাল ভেরিয়েবল ডিক্লেয়ার করা হয়েছে এবং z ইনিশিয়ালাইজড।

int a; static int b; …. int x; static int y; int z = 28;

তাদের ডিফল্ট মানগুলো প্রিন্ট করা হয়েছে।

printf("The default value of global variable a : %d", a);
printf("\nThe default value of global static variable b : %d", b);
printf("\nThe default value of local variable x : %d", x);
printf("\nThe default value of local static variable y : %d", y);
printf("\nThe value of local variable z : %d", z);

  1. C++-এ লোকাল এবং গ্লোবাল ভেরিয়েবল কী?

  2. C++-এ গ্লোবাল ভেরিয়েবল কী?

  3. C++ লোকাল এবং গ্লোবাল ভেরিয়েবল ডিফল্টভাবে কীভাবে ইনিশিয়ালাইজ হয়?

  4. জাভাতে ইন্টারফেস ভেরিয়েবল ডিফল্টভাবে static এবং final কেন