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

সি ভাষায় ভেরিয়েবলের ইমপ্লিসিট ইনিশিয়ালাইজেশন (০ বা ১ দিয়ে)

সি-এ কিছু পরিস্থিতিতে ভেরিয়েবল ডিক্লেয়ার করার সময় যদি মান না দেওয়া থাকে, তবে সেগুলো অটোমেটিক্যালি ০ দিয়ে ইনিশিয়ালাইজ হয় (স্ট্যাটিক স্টোরেজ ডুরেশন)। কিন্তু লোকাল ভেরিয়েবল (অটোমেটিক স্টোরেজ) এর ক্ষেত্রে মান অনডিফাইনড (গার্বেজ) থাকে। এছাড়া main-এর প্রথম প্যারামিটার (argc) সাধারণত ১ হয়।

স্ট্যাটিক/গ্লোবাল ভেরিয়েবল — অটো ০

#include <stdio.h>
#include <stdlib.h>

int x, y, array[3]; // গ্লোবাল/স্ট্যাটিক — অটো ০

int main(int argc) { // argc = আর্গুমেন্ট কাউন্ট (সাধারণত ১)
    int index;
    printf("x = %d, y = %d\n\n", x, y); // 0, 0
    for (index = 0; index < 3; index++)
        printf("Array[%d] = %d\n", index, array[index]); // 0, 0, 0
    printf("The value of argc: %d\n", argc); // 1
    return 0;
}

আউটপুট

x = 0, y = 0
Array[0] = 0
Array[1] = 0
Array[2] = 0
The value of argc: 1

পার্শিয়াল অ্যারে ইনিশিয়ালাইজেশন — বাকি ০

#include <stdio.h>

int main() {
    int array[10] = {1, 2, 3, 4, 5, 6}; // প্রথম ৬ টি দিয়ে, বাকি ০
    for (int i = 0; i < 10; i++)
        printf("Array[%d] = %d\n", i, array[i]);
    return 0;
}

আউটপুট

Array[0] = 1
Array[1] = 2
Array[2] = 3
Array[3] = 4
Array[4] = 5
Array[5] = 6
Array[6] = 0
Array[7] = 0
Array[8] = 0
Array[9] = 0

সারসংক্ষেপ: স্টোরেজ ডুরেশন অনুযায়ী ডিফল্ট মান

সেরা অনুশীলন

  • সবসময় লোকাল ভেরিয়েবল ইনিশিয়ালাইজ করুন — গার্বেজ মান থেকে বাগ বাচতে
  • int x = 0; বা int x{}; (C++11) ব্যবহার করুন
  • calloc ব্যবহার করুন জিরো-ইনিশিয়ালাইজড মেমরির জন্য
  1. AJAX কলের সাথে জাভাস্ক্রিপ্ট ভেরিয়েবল কীভাবে পাস করবেন?

  2. জাভাস্ক্রিপ্টে ডিস্ট্রাকচারিং (destructuring) দিয়ে ভেরিয়েবল সোয়াপ (swap) করা

  3. জাভাস্ক্রিপ্ট দিয়ে CSS ভেরিয়েবল (কাস্টম প্রোপার্টি) গেট ও সেট করা

  4. পাইথনে ইন্ডেক্স হিসেবে ভ্যালু থাকা ডিকশনারি তৈরি করুন

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
স্টোরেজ ডুরেশনউদাহরণডিফল্ট মান
Static (গ্লোবাল, static)int x; (ফাংশন বাইরে)০ (নাল পয়েন্টার, ০.০, '\0')
Thread-local (_Thread_local)_Thread_local int x;০
Automatic (লোকাল, auto)void f() { int x; }অনডিফাইনড (গার্বেজ)
Allocated (malloc/new)malloc(n)অনইনিশিয়ালাইজড (গার্বেজ)
Allocated (calloc)calloc(n, size)০ (জিরো-ফিল্ড)