কম্পিউটার

সি-তে অ্যারে এবং পয়েন্টারের মধ্যে পার্থক্য।


C-তে অ্যারে একই ধরনের উপাদান সংরক্ষণ করতে ব্যবহৃত হয় যেখানে পয়েন্টার হল ঠিকানা ভেরিয়েবল যা একটি ভেরিয়েবলের ঠিকানা সংরক্ষণ করে। এখন অ্যারে ভেরিয়েবলের একটি ঠিকানাও রয়েছে যা পয়েন্টার দ্বারা নির্দেশ করা যেতে পারে এবং পয়েন্টার ব্যবহার করে অ্যারে নেভিগেট করা যেতে পারে। অ্যারের জন্য পয়েন্টার ব্যবহার করার সুবিধা হল দুটি ভাঁজ, প্রথমত, আমরা পয়েন্টারে গতিশীলভাবে বরাদ্দ করা অ্যারের ঠিকানা সংরক্ষণ করি এবং দ্বিতীয়টি, একটি ফাংশনে অ্যারে পাস করতে। নিচে অ্যারে ব্যবহার করা এবং পয়েন্টার টু অ্যারে ব্যবহার করার মধ্যে পার্থক্য রয়েছে।

  • sizeof() অপারেটর অ্যারের ক্ষেত্রে অ্যারের আকার প্রিন্ট করে এবং পয়েন্টারের ক্ষেত্রে, এটি int-এর আকার প্রিন্ট করে।

  • অ্যাসাইনমেন্ট অ্যারে ভেরিয়েবলকে অন্য ভেরিয়েবলের ঠিকানা বরাদ্দ করা যায় না তবে পয়েন্টার এটি নিতে পারে।

  • প্রথম মান প্রথম সূচীকৃত মান পয়েন্টারের মানের সমান। উদাহরণস্বরূপ, অ্যারে[0] ==*p.

  • পুনরাবৃত্তি অ্যারে উপাদানগুলি [] ব্যবহার করে সূচী ব্যবহার করে নেভিগেট করা যেতে পারে, পয়েন্টার পয়েন্টার গাণিতিক ব্যবহার করে অ্যারের উপাদানগুলিতে অ্যাক্সেস দিতে পারে। উদাহরণস্বরূপ, অ্যারে[2] ==*(p+2)

উদাহরণ (C)

#include <stdio.h>
void printElement(char* q, int index){
   printf("Element at index(%d) is: %c\n", index, *(q+index));
}
int main() {
   char arr[] = {'A', 'B', 'C'};
   char* p = arr;
   printf("Size of arr[]: %d\n", sizeof(arr));
   printf("Size of p: %d\n", sizeof(p));
   printf("First element using arr is: %c\n", arr[0]);
   printf("First element using p is: %c\n", *p);
   printf("Second element using arr is: %c\n", arr[1]);
   printf("Second element using p is: %c\n", *(p+1));
   printElement(p, 2);
   return 0;
}

আউটপুট

Size of arr[]: 3
Size of p: 8
First element using arr is: A
First element using p is: A
Second element using arr is: B
Second element using p is: B
Element at index(2) is: C

  1. c# এ ==এবং .Equals পদ্ধতির মধ্যে পার্থক্য

  2. C# এ একটি তালিকা এবং একটি অ্যারের মধ্যে পার্থক্য কী?

  3. জাভাতে প্যাকেজ এবং ইন্টারফেসের মধ্যে পার্থক্য

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