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

C এবং C++-তে কনস্ট্যান্ট ভেরিয়েবল ঘোষণা করার বিভিন্ন পদ্ধতি

C এবং C++-তে কনস্ট্যান্ট ঘোষণা করার একাধিক পদ্ধতি রয়েছে। প্রথমে জানি কনস্ট্যান্ট কী।

কনস্ট্যান্ট কী?

কনস্ট্যান্ট মানে যা পরিবর্তন করা যায় না। প্রোগ্রামিং-এ কনস্ট্যান্ট হলো নির্দিষ্ট মান যা প্রোগ্রাম এক্সিকিউশনের সময় অন্য কোনো ভেরিয়েবল বা কম্পোনেন্ট দ্বারা পরিবর্তন করা যায় না। এতে যেকোনো ডেটা টাইপ হতে পারে। পাই (Pi) এর মতো ফিক্সড ভ্যালু (৩.১৪) কনস্ট্যান্ট হিসেবে ঘোষণা করা হয়।

কনস্ট্যান্ট ঘোষণা করার পদ্ধতিগুলো

১. const কীওয়ার্ড ব্যবহার করে

এটি সবচেয়ে সাধারণ পদ্ধতি। const কীওয়ার্ড দিয়ে ভেরিয়েবল কনস্ট্যান্ট করা হয়। প্রোগ্রাম যদি মান পরিবর্তন করার চেষ্টা করে, তবে কম্পাইলার এরর দেখাবে।

উদাহরণ

#include <stdio.h>
int main() {
    const int value = 5;
    printf("কনস্ট্যান্ট ভেরিয়েবলের মান: %d", value);
    value = 8; // কম্পাইল এরর হবে
    return 0;
}

আউটপুট (এরর)

error: assignment of read-only variable 'value'

২. Enum (এনাম) ব্যবহার করে

Enum বা এনামারেশন দিয়ে কনস্ট্যান্ট মানগুলোর সেট তৈরি করা যায়। এটি ইউজার-ডিফাইনড ডেটা টাইপ। যেমন সপ্তাহের দিনগুলো enum দিয়ে ফিক্সড করা যায়।

উদাহরণ

#include <stdio.h>
enum months {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};
int main() {
    int i;
    printf("মানগুলো: ");
    for (i = Jan; i <= Dec; i++)
        printf("%d ", i);
    return 0;
}

আউটপুট

মানগুলো: 0 1 2 3 4 5 6 7 8 9 10 11

৩. Macro (#define) ব্যবহার করে

Macro হলো প্রিপ্রসেসর ডিরেক্টিভ। #define দিয়ে একটি নামের সাথে কোড বা মান আঁকা হয়। কম্পাইলারের সময় নামটি কোড বা মান দ্বারা রিপ্লেস হয়। তাই ম্যাক্রো কনস্ট্যান্ট মান হিসেবে কাজ করে।

উদাহরণ (মডিফাই করার চেষ্টা)

#include <iostream>
using namespace std;
#define val 10
int main() {
    val++; // এরর: এক্সপ্রেশন অ্যাসাইনযোগ্য নয়
    return 0;
}

আউটপুট (এরর)

error: expression is not assignable

উদাহরণ (সঠিক ব্যবহার)

#include <iostream>
using namespace std;
#define val 10
int main() {
    int product = 1;
    cout << "Macro val এর মান: " << val;
    for (int i = 0; i < val; i++)
        product = product * val;
    cout << "\nProduct: " << product;
    cout << "\nমডিফাই করার পর val: " << val;
    return 0;
}

আউটপুট

Macro val এর মান: 10
Product: 1410065408
মডিফাই করার পর val: 10
  1. C++-এ ভেরিয়েবল কীভাবে ডিক্লেয়ার করবেন?

  2. C++-এ ইনক্রিমেন্ট ++ এবং ডিক্রিমেন্ট -- অপারেটর

  3. C++-এ পয়েন্টার অপারেটর * (ইন্ডিরেকশন)

  4. C#-এ একক এবং একাধিক ভেরিয়েবল প্রিন্ট করা