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

সি/সি++ প্রোগ্রামে অনির্সিয়ালাইজড প্রিমিটিভ ডেটা টাইপ


এই সেকশনে আমরা দেখব যখন আমরা একটি ভেরিয়েবল ডিক্লেয়ার করি যা অনির্সিয়ালাইজড, সি বা সি++ ভাষায় সেটি কোন মান ধারণ করে। কখনো কখনো আমরা ধরে নিই কম্পাইলার কিছু ডিফল্ট ভ্যালু অ্যাসাইন করে যেমন int-এর জন্য ০, float-এর জন্য ০.০ ইত্যাদি। কিন্তু ক্যারেক্টার ডেটা টাইপের জন্য কী হবে? ইমপ্লিমেন্টেশন দিয়ে দেখি এবং বিভিন্ন কম্পাইলার দিয়ে কম্পাইল করি।

উদাহরণ (C++)

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন −

#include <iostream> using namespace std; int main() {    char char_var;    float float_var;    int int_var;    double double_var;    long long_var;    cout << char_var << endl;    cout << float_var << endl;    cout << int_var << endl;    cout << double_var << endl;    cout << long_var << endl; }

আউটপুট (Cpp.sh-এ কম্পাইল)

0 0 0 0

আউটপুট (Online GDB-এ কম্পাইল)

5.88054e-39 0 6.95297e-310 0

আউটপুট (লোকাল সিস্টেমে)

9.73438e-039 4309744 1.15685e-306 -53505136

এখন প্রশ্ন আসে কেন সি/সি++ কম্পাইলার ভেরিয়েবলগুলো ডিফল্ট ভ্যালু দিয়ে ইনিশিয়ালাইজ করে না? উত্তর সহজ, স্ট্যাক ভেরিয়েবল ইনিশিয়ালাইজ করার ওভারহেড ব্যয়বহুল কারণ এটি এক্সিকিউশন স্পিড হ্রাস করে, ফলে এই ভেরিয়েবলগুলো অনির্ধারিত মান ধারণ করতে পারে। তাই প্রিমিটিভ ডেটা টাইপ ভেরিয়েবল কোডে ব্যবহারের আগে ইনিশিয়ালাইজ করা ভালো প্র্যাকটিস।


  1. সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)

  2. C/C++-তে আর্গুমেন্ট কোয়ার্শন (Argument Coercion)

  3. মাল্টি-ডাইমেনশনাল অ্যারে ব্যবহার করে দুটি ম্যাট্রিক্স যোগ করার C++ প্রোগ্রাম

  4. C++ প্রোগ্রামিং-এ ফান্ডামেন্টাল ডেটা টাইপ (Fundamental Data Types) কী?