ভেরিয়েবলের অ্যাড্রেস ধারণ করা (& এবং * অপারেটর)

পয়েন্টার - সি প্রোগ্রামিং উদাহরণ (C Examples) - Computer Science

386

সি প্রোগ্রামিং ভাষায়, একটি ভেরিয়েবলের অ্যাড্রেস ধারণ করা এবং সেই অ্যাড্রেসের মান অ্যাক্সেস করার জন্য দুটি বিশেষ অপারেটর ব্যবহার করা হয়: & (এমপার্স্যান্ড) এবং * (স্টার বা ডিরেফারেন্সিং অপারেটর)

& অপারেটর

& অপারেটর একটি ভেরিয়েবলের মেমোরি অ্যাড্রেস প্রদান করে। এটি কোনো ভেরিয়েবলের সামনে ব্যবহার করলে সেই ভেরিয়েবলের মেমোরি লোকেশন বা ঠিকানা রিটার্ন করে।

উদাহরণ

#include <stdio.h>

int main() {
    int num = 10;
    printf("Address of num: %p\n", &num); // & অপারেটরের মাধ্যমে num এর ঠিকানা পাওয়া
    return 0;
}

আউটপুট:

Address of num: 0x7ffee3b0d0ac (এটি মেমোরি ঠিকানা হতে পারে, ভিন্নও হতে পারে)

এখানে &num ব্যবহার করার মাধ্যমে num ভেরিয়েবলের মেমোরি ঠিকানা প্রিন্ট করা হয়েছে।

* অপারেটর (ডিরেফারেন্সিং অপারেটর)

* অপারেটর একটি পয়েন্টারের মাধ্যমে মেমোরি লোকেশনে থাকা মান অ্যাক্সেস করতে ব্যবহার করা হয়। যখন কোনো পয়েন্টারে * অপারেটর প্রয়োগ করা হয়, তখন সেটি সেই পয়েন্টারের ঠিকানায় থাকা ডেটা রিটার্ন করে। এ কারণে * অপারেটরকে ডিরেফারেন্সিং অপারেটর বলা হয়।

উদাহরণ

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = # // num এর ঠিকানা ptr এ সংরক্ষণ করা হচ্ছে

    printf("Value of num: %d\n", num);
    printf("Address of num: %p\n", &num);
    printf("Value stored in ptr (address of num): %p\n", ptr);
    printf("Value pointed by ptr: %d\n", *ptr); // * অপারেটরের মাধ্যমে num এর মানে প্রবেশ

    return 0;
}

আউটপুট:

Value of num: 10
Address of num: 0x7ffee3b0d0ac
Value stored in ptr (address of num): 0x7ffee3b0d0ac
Value pointed by ptr: 10

বিবরণ:

  • ptr একটি পয়েন্টার, যা num এর মেমোরি ঠিকানা ধারণ করে।
  • *ptr ব্যবহার করে আমরা ptr দ্বারা নির্দেশিত মেমোরি ঠিকানার মান অ্যাক্সেস করতে পারি, অর্থাৎ num এর মান 10

& এবং * অপারেটরের সম্পর্ক

  • & অপারেটর কোনো ভেরিয়েবলের ঠিকানা ধারণ করে।
  • * অপারেটর সেই ঠিকানায় থাকা আসল মানটি বের করতে সাহায্য করে।

উদাহরণ:

int num = 10;
int *ptr = #
printf("%d\n", *(&num)); // num এর ঠিকানা থেকে আবার num এর মান বের করা

আউটপুট:

Copy code

10

এখানে, *(&num) ব্যবহার করে আমরা num এর মান সরাসরি অ্যাক্সেস করতে পারছি। &num এর মাধ্যমে num এর মেমোরি ঠিকানা পাওয়া যায় এবং * অপারেটরের মাধ্যমে সেই ঠিকানায় থাকা মান অ্যাক্সেস করা যায়।

সংক্ষেপে:

  • & অপারেটর: একটি ভেরিয়েবলের ঠিকানা রিটার্ন করে।
  • * অপারেটর: পয়েন্টার দ্বারা নির্দেশিত ঠিকানার মানে প্রবেশ করতে ব্যবহৃত হয়।

সুতরাং, পয়েন্টারের মাধ্যমে ভেরিয়েবলের মেমোরি ঠিকানার মান অ্যাক্সেস এবং ম্যানিপুলেশন করতে & এবং * অপারেটর ব্যবহার করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...