কম্পিউটার

C-তে const int*, const int * const এবং int const * এর মধ্যে পার্থক্য


পয়েন্টার

সি প্রোগ্রামিং ভাষায়, *p একটি পয়েন্টারে সংরক্ষিত মানকে প্রতিনিধিত্ব করে এবং p একটি মানের ঠিকানাকে প্রতিনিধিত্ব করে, একটি পয়েন্টার হিসাবে উল্লেখ করা হয়৷

const int* এবং int const* বলে যে পয়েন্টার একটি ধ্রুবক int নির্দেশ করতে পারে এবং এই পয়েন্টার দ্বারা নির্দেশিত int এর মান পরিবর্তন করা যাবে না। কিন্তু আমরা পয়েন্টারের মান পরিবর্তন করতে পারি কারণ এটি ধ্রুবক নয় এবং এটি অন্য ধ্রুবক int নির্দেশ করতে পারে।

const int* const বলে যে পয়েন্টার একটি ধ্রুবক int নির্দেশ করতে পারে এবং এই পয়েন্টার দ্বারা নির্দেশিত int এর মান পরিবর্তন করা যাবে না। এবং আমরা পয়েন্টারের মান পরিবর্তন করতে পারি না যেমন এটি এখন ধ্রুবক এবং এটি অন্য ধ্রুবক int নির্দেশ করতে পারে না।

থাম্ব রুল হল সিনট্যাক্সকে ডান থেকে বামে নামকরণ করা।

// constant pointer to constant int
const int * const
// pointer to constant int
const int *

উদাহরণ (C)

মন্তব্য করা ভ্রান্ত কোডগুলিকে মুক্ত করুন এবং ত্রুটিটি দেখুন৷

#include <stdio.h>
int main() {
   //Example: int const*
   //Note: int const* is same as const int*
   const int p = 5;
   // q is a pointer to const int
   int const* q = &p;
   //Invalid asssignment
   // value of p cannot be changed
   // error: assignment of read-only location '*q'
   //*q = 7;
   const int r = 7;
   //q can point to another const int
   q = &r;
   printf("%d", *q);
   //Example: int const* const
   int const* const s = &p;
   // Invalid asssignment
   // value of s cannot be changed
   // error: assignment of read-only location '*s'
   // *s = 7;
   // Invalid asssignment
   // s cannot be changed
   // error: assignment of read-only variable 's'
   // s = &r;
   return 0;
}

আউটপুট

7

  1. const int*, const int * const, এবং int const * এর মধ্যে পার্থক্য কি?

  2. C# এবং ভিজ্যুয়াল C# এর মধ্যে পার্থক্য

  3. C# এবং .Net এর মধ্যে পার্থক্য

  4. Go এবং Java এর মধ্যে পার্থক্য।