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

সি ভাষায় পয়েন্টার এবং অ্যারের পারস্পরিক সম্পর্ক

পয়েন্টার এবং অ্যারে: ঘনিষ্ঠ সম্পর্ক

অ্যারের এলিমেন্টগুলো কনটিগুয়াস (সন্নিবিষ্ট) মেমরিতে সংরক্ষিত থাকে। অ্যারের নাম (a) একটি কনস্ট্যান্ট পয়েন্টার যা প্রথম এলিমেন্টের ঠিকানা (&a[0]) নির্দেশ করে।

বেস এড্রেস এবং স্কেল ফ্যাক্টর

যদি int a[5] = {10, 20, 30, 40, 50}; হয় এবং int *p = a; হয়, তবে:

এক্সপ্রেশনএড্রেস (উদাহরণ: বেস=1000)ভ্যালু
p (या a)100010
p+1 (या a+1)100420
p+2100830
p+3101240
p+4101650

ইন্টেজারের সাইজ ৪ বাইট → স্কেল ফ্যাক্টর = ৪। p+i এড্রেস বেড়ায় i * sizeof(int) বাইট।

পয়েন্টার দিয়ে অ্যারে এক্সেস

a[i]       ↔  *(a + i)  ↔  *(p + i)  ↔  p[i]

সব সমতুল্য।

এড্রেস ক্যালকুলেশন ফর্মুলা

Address of a[i] = base_address + (i * scale_factor)

উদাহরণ: a[3] এর এড্রেস = 1000 + (3 × 4) = 1012।

উদাহরণ প্রোগ্রাম

#include <stdio.h>

int main() {
    int a[5];
    int *p;
    int i;

    printf("Enter 5 elements: ");
    for (i = 0; i < 5; i++)
        scanf("%d", &a[i]);

    p = a; // বা &a[0]

    printf("Array elements via pointer: ");
    for (i = 0; i < 5; i++)
        printf("%d ", *(p + i));

    return 0;
}

আউটপুট

Enter 5 elements: 10 20 30 40 50
Array elements via pointer: 10 20 30 40 50

মहত্বপূর্ণ পার্থক্য

  • a কনস্ট্যান্ট পয়েন্টার (ল-ভ্যালু নয়, a++ অবৈধ)।
  • p ভেরিয়েবল পয়েন্টার (p++ বৈধ)।
  • sizeof(a) = পুরো অ্যারের সাইজ (২০ বাইট)। sizeof(p) = পয়েন্টার সাইজ (৪/৮ বাইট)।
  1. C ভাষায় পয়েন্টার এবং টু-ডাইমেনশনাল অ্যারে ব্যাখ্যা

  2. সি ভাষায় পয়েন্টার এবং অ্যারের পারস্পরিক সম্পর্ক

  3. C ভাষায় ক্যারেক্টার অপারেশন ব্যাখ্যা

  4. সি ভাষায় সর্টিং টেকনিক ব্যাখ্যা