পয়েন্টার ডিক্লেরেশনে const এর পজিশন অর্থ পরিবর্তন করে। Clockwise/Spiral Rule অনুসরণ করে পড়া যায়: পয়েন্টার নাম থেকে শুরু করে ঘড়ির কাঁটার দিকে পড়ুন।
১. const int* ptr (বা int const* ptr)

- অর্থ: পয়েন্টার modification-যোগ্য, কিন্তু পয়েন্ট করা ডেটা
const(read-only)। - পড়ুন: "ptr is a pointer to const int"
- ডেটা পরিবর্তন করা যাবে না:
*ptr = 10; // Error - পয়েন্টার পরিবর্তন করা যাবে:
ptr = &other; // OK
২. const int* const ptr

- অর্থ: পয়েন্টারও
const, পয়েন্ট করা ডেটাওconst। - পড়ুন: "ptr is a const pointer to const int"
- দুটোই পরিবর্তন করা যাবে না। ইনিশিয়ালাইজেশনে বাধ্যতামূলক。
৩. int* const ptr

- অর্থ: পয়েন্টার
const(পুনঃঅ্যাসাইন করা যাবে না), কিন্তু ডেটা মডিফাইযোগ্য। - পড়ুন: "ptr is a const pointer to int"
*ptr = 10; // OK,ptr = &other; // Error
সারসংক্ষেপ টেবিল
| ডিক্লেরেশন | পয়েন্টার Const? | ডেটা Const? | নোট |
|---|---|---|---|
const int* p / int const* p | না | হ্যাঁ | সাধারণত ব্যবহৃত (read-only access) |
int* const p | হ্যাঁ | না | ফিক্সড অ্যাড্রেস, মডিফাইযোগ্য ডেটা |
const int* const p | হ্যাঁ | হ্যাঁ | পুরোপুরি ইমিউটেবল |
মনে রাখার টিপ: const আস্তারলে (* এর বামে) -> ডেটা কনস্ট। ডানে (* এর ডানে) -> পয়েন্টার কনস্ট।