সি বা সি++-এ কনস্ট্যান্ট ভেরিয়েবল ব্যবহার করা যায়। কনস্ট্যান্ট ভেরিয়েবলের মান আরম্ভিকেশন এর পর পরিবর্তন করা যায় না। এই সেকশনে দেখব কীভাবে কিছু কনস্ট্যান্ট ভেরিয়েবলের মান পরিবর্তন করা যায়।
যদি কনস্ট্যান্ট ভেরিয়েবলের মান পরিবর্তন করতে চাই, তবে কম্পাইল টাইম এরর হবে। নিচের কোড দেখুন।
উদাহরণ: এরর
#include <stdio.h>
int main() {
const int x = 10; // কনস্ট্যান্ট ইন্ট
printf("x = %d\n", x);
x = 15; // কনস্ট্যান্ট মান আপডেট করার চেষ্টা
printf("x = %d\n", x);
}
আউটপুট
[Error] assignment of read-only variable 'x'
এটি এরর দেয়। এখন দেখব কীভাবে x (যেটি কনস্ট্যান্ট) এর মান পরিবর্তন করা যায়।
x-এর মান পরিবর্তন করতে পয়েন্টার ব্যবহার করা যায়। একটি পয়েন্টার x-কে পয়েন্ট করাবে। এখন পয়েন্টার দিয়ে আপডেট করলে কোনো এরর হবে না।
উদাহরণ: পয়েন্টার দিয়ে মডিফাই
#include <stdio.h>
int main() {
const int x = 10;
int *ptr;
printf("x = %d\n", x);
ptr = &x; // ptr x-কে পয়েন্ট করে
*ptr = 15; // পয়েন্টার দিয়ে আপডেট
printf("x = %d\n", x);
}
আউটপুট
x = 10 x = 15
সতর্কতা: কনস্ট্যান্ট ভেরিয়েবল পয়েন্টার দিয়ে মডিফাই করাUndefined Behavior-র অধীন। এটি কেবল শিক্ষার্থী উদ্দেশ্যে দেখানো হয়েছে। বাস্তব প্রোগ্রামিংয়ে const ভেরিয়েবল মডিফাই করা উচিত নয়।