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

C++-এ sizeof অপারেটরের ফলাফল

Sizeof অপারেটর C ল্যাঙ্গুয়েজে সবচেয়ে বেশি ব্যবহৃত অপারেটরlerden একটি যা যেকোনো ডেটা স্ট্রাকচার বা ডেটা টাইপের সাইজ কম্পিউট করতে ব্যবহৃত হয় যা আমরা এর মাধ্যমে পাস করি। Sizeof অপারেটর আনসাইনড ইন্টিজার টাইপ রিটার্ন করে, এবং এই অপারেটর প্রিমিটিভ এবং কম্পাউন্ড ডেটা টাইপ দুটোইতে প্রয়োগ করা যায়। আমরা সরাসরি sizeof অপারেটর ডেটা টাইপে প্রয়োগ করে জানতে পারি সেটি কতটুকু মেমরি নিচ্ছে −

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int main() {
    cout << sizeof(int) << "\n";
    cout << sizeof(char) << "\n";
    cout << sizeof(float) << "\n";
    cout << sizeof(long) << "\n";
    return 0;
}

আউটপুট

4
1
4
8
8

এই ফাংশনালিটি ব্যবহার করে আমরা জানতে পারি এই ডেটা টাইপের যেকোনো ভেরিয়েবল কতটুকু স্পেস নিচ্ছে। আউটপুট কম্পাইলারর ওপরও ডিপেন্ড করে কারণ ১৬_বিট কম্পাইলার int-এর জন্য আলাদা ভ্যালু দেবে ৩২_বিট কম্পাইলারের চেয়ে।

আমরা এই অপারেশন এক্সপ্রেশনেও প্রয়োগ করতে পারি −

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int main() {
    cout << sizeof(int) << "\n";
    cout << sizeof(char) << "\n";
    cout << sizeof(float) << "\n";
    cout << sizeof(double) << "\n";
    cout << sizeof(long) << "\n";
    return 0;
}

আউটপুট

4
4

যে কারণে, x-এর পূর্বের ভ্যালু চার ছিল, এবং প্রিফিক্স অপারেশন করার পরেও সেটি একই থাকে। এটা সব sizeof অপারেটরের কারণে কারণ এই অপারেটর কম্পাইল-টাইমে ব্যবহার হয়, তাই আমরা যে এক্সপ্রেশনে প্রয়োগ করি তার ভ্যালু চেঞ্জ করে না।

sizeof অপারেটরের প্রয়োজনীয়তা

sizeof অপারেটরের বিভিন্ন ব্যবহার আছে। কিন্তু এটি মূলত কম্পাউন্ড ডেটা টাইপের সাইজ ডিটারমাইন করতে ব্যবহৃত হয় যেমন অ্যারে, স্ট্রাকচার, ইউনিয়ন, ইত্যাদি।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int main() {
    int arr[] = {1, 2, 3, 4, 5}; // দেয়া অ্যারে
    int size = sizeof(arr) / sizeof(int); // অ্যারের সাইজ ক্যালকুলেট করা
    cout << size << "\n"; // দেয়া অ্যারের সাইজ আউটপুট করা
}

আউটপুট

5

এখানে প্রথমে, আমরা পুরো অ্যারের সাইজ ক্যালকুলেট করি বা সেটি কতটুকু মেমরি নিচ্ছে সেটি বের করি। তারপর সেই সংখ্যাকে ডেটা টাইপের sizeof দিয়ে ভাগ করি; এই প্রোগ্রামে এটি int।

এই অপারেটরের দ্বিতীয় সবচেয়ে গুরুত্বপূর্ণ ইউজ কেস হল ডাইনামিক মেমরি অ্যালোকেশন, তাই আমরা স্পেস অ্যালোকেট করার সময় sizeof অপারেটর ব্যবহার করি।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int main() {
    int* ptr = (int*)malloc(10 * sizeof(int)); // এখানে আমরা ৪০ বাইট মেমরি অ্যালোকেট করছি
    // sizeof(int) হল ৪ এবং আমরা ১০ ব্লক অ্যালোকেট করছি
    // অর্থাৎ ৪০ বাইট
}

উপসংহার

এই আর্টিকেলে, আমরা sizeof অপারেটর ব্যবহার ও কীভাবে এটি কাজ করে তা আলোচনা করছি। আমরা এই অপারেটরের বিভিন্ন ইউজ কেস কোড করে আউটপুট দেখেছি এবং আলোচনা করেছি। আমরা এই অপারেটরের ইউজ কেস C++-এ ইমপ্লিমেন্ট করেছি। আমরা একই প্রোগ্রাম অন্যান্য ল্যাঙ্গুয়েজে লিখতে পারি যেমন C, Java, Python, ইত্যাদি। আশা করি আপনি এই আর্টিকেলটিকে সহায়ক খুঁজে পাবেন।

  1. C++-এ আনারি অপারেটর ওভারলোডিং

  2. C++-এ sizeof() অপারেটর হিসেবে কেন ইমপ্লিমেন্ট করা হয়েছে?

  3. C++-এ sizeof অপারেটর কী?

  4. C++-এ ইউনারি অপারেটর (Unary Operators)