Table of Contents

    SEMESTER – I - COMS - Unit – 3: Section 6: Introduction to C: Pointers

    Introduction to C: Pointers (COMS Semester I - Unit 3: Section 6)

    C প্রোগ্রামিং-এ Pointer একটি অত্যন্ত শক্তিশালী এবং গুরুত্বপূর্ণ ধারণা। Pointer ব্যবহার করে আমরা memory address নিয়ে কাজ করতে পারি। Arrays, Functions এবং Data Structure-এ Pointer খুবই গুরুত্বপূর্ণ ভূমিকা পালন করে।


    ১. Pointer কী?

    Pointer হলো এমন একটি ভ্যারিয়েবল যা অন্য একটি ভ্যারিয়েবলের memory address সংরক্ষণ করে।

    
    int a = 10;
    int *p = &a;
    

    এখানে p হলো pointer, যা a-এর address ধরে রাখছে।


    ২. Pointer Declaration এবং Initialization

    Declaration:

    
    int *p;
    

    Initialization:

    
    int a = 5;
    int *p = &a;
    

    ৩. Pointer Operators

    • & → Address of operator (address বের করে)
    • * → Value at address operator (value বের করে)
    
    int a = 10;
    int *p = &a;
    
    printf("%d", *p); // Output: 10
    

    ৪. Pointer Arithmetic

    Pointer arithmetic ব্যবহার করে pointer-এর address বাড়ানো বা কমানো যায়।

    
    int arr[3] = {10, 20, 30};
    int *p = arr;
    
    p++; // next element-এর দিকে যাবে
    

    Pointer 1 বাড়লে আসলে next memory location-এ চলে যায়।


    ৫. Pointer দিয়ে Variable Access

    
    int a = 50;
    int *p = &a;
    
    printf("%d", *p); // 50
    

    ৬. Pointer এবং Array

    Array নাম নিজেই একটি pointer-এর মতো কাজ করে।

    
    int arr[3] = {1, 2, 3};
    int *p = arr;
    
    printf("%d", *(p + 1)); // Output: 2
    

    ৭. Pointer এবং String

    String-ও character array, তাই pointer দিয়ে সহজে access করা যায়।

    
    char *str = "Hello";
    
    printf("%c", *(str + 1)); // Output: e
    

    ৮. Pointer এবং Function

    Pointer ব্যবহার করে আমরা function-এ address পাঠাতে পারি (Call by Reference)।

    
    #include <stdio.h>
    
    void change(int *x) {
        *x = 100;
    }
    
    int main() {
        int a = 10;
        change(&a);
    
        printf("%d", a); // Output: 100
        return 0;
    }
    

    ৯. Pointer-এর ব্যবহার

    • ✔ Memory efficient programming
    • ✔ Array handling
    • ✔ Function parameter passing
    • ✔ Dynamic memory allocation

    ১০. বাস্তব জীবনের উদাহরণ

    ✔ Variable → তোমার বাড়ি ✔ Pointer → সেই বাড়ির address

    তুমি address দিলে লোক তোমার বাড়িতে পৌঁছাতে পারবে।


    উপসংহার

    Pointer C প্রোগ্রামিং-এর সবচেয়ে শক্তিশালী টুলগুলোর একটি। এটি memory address নিয়ে কাজ করতে সাহায্য করে এবং program-কে efficient করে তোলে। Arrays, Strings এবং Functions-এর সাথে Pointer ভালোভাবে বুঝতে পারলে advanced programming সহজ হয়ে যায়।


    Quick Revision

    • Pointer → address ধরে রাখে
    • & → address বের করে
    • * → value বের করে
    • Array নাম → pointer হিসেবে কাজ করে
    • Pointer → function-এ reference পাঠাতে ব্যবহার হয়