Menu
CoddyTech
flag Ar iconالعربيةdown icon

عامل العنوان (&)

جزء من قسم المنطق وتدفق التنفيذ في رحلة C على Coddy. الدرس 3 من 63.

الآن بعد أن أصبحت قادرًا على تعريف المؤشرات، تحتاج إلى تعلّم كيفية تخزين عنوان ذاكرة فيها فعليًا. يُعد عامل الحصول على العنوان (&) المفتاحَ للحصول على عنوان ذاكرة أي متغيّر.

عندما تضع العامل & أمام اسم متغير، فإنه يُرجع عنوان الذاكرة الذي يُخزَّن فيه ذلك المتغير. فكّر في الأمر كما لو أنك تسأل: «أين يعيش هذا المتغير في الذاكرة؟»

int age = 25;
int *ptr;
ptr = &age;    // خزّن عنوان 'age' في 'ptr'

في هذا المثال، يمنحنا &age عنوان الذاكرة للمتغير age. ثم نُسنِد هذا العنوان إلى المؤشر ptr الخاص بنا. الآن يشير ptr إلى المتغير age.

عامل أخذ العنوان أساسي لأنه حلقة الوصل بين المتغيرات العادية والمؤشرات. وبدونه، لن تتمكن من إخبار المؤشر إلى أي متغير يشير. تذكّر أن أنواع البيانات يجب أن تتطابق - فلا يمكنك إسناد عنوان عدد صحيح إلا إلى مؤشر مُعلن للأعداد الصحيحة.

challenge icon

التحدي

سهل

اكتب برنامجًا بلغة C يوضّح استخدام عامل أخذ العنوان لربط المتغيرات بالمؤشرات. يجب أن يقوم برنامجك بما يلي:

  1. التصريح عن متغير صحيح باسم number وتهيئته بالقيمة 42
  2. التصريح عن متغير محرف باسم letter وتهيئته بالقيمة 'X'
  3. التصريح عن مؤشر إلى عدد صحيح باسم num_ptr
  4. التصريح عن مؤشر إلى محرف باسم char_ptr
  5. استخدام عامل أخذ العنوان لإسناد عنوان number إلى num_ptr
  6. استخدام عامل أخذ العنوان لإسناد عنوان letter إلى char_ptr
  7. طباعة العناوين المخزنة في كلا المؤشرين باستخدام printf مع محدد التنسيق %p

يجب أن يعرض ناتجك عناوين المؤشرات بالتنسيق التالي:

Address of number: [address]
Address of letter: [address]

ستختلف عناوين الذاكرة الفعلية بين عمليات تشغيل البرنامج، ولكن يجب أن يتطابق التنسيق والتسميات تمامًا مع ما هو موضح أعلاه. [address] هو عنصر نائب للعنوان المطبوع؛ لا تطبع الأقواس المربعة.

جرّب بنفسك

#include <stdio.h>

int main() {
    // TODO: اكتب الكود الخاص بك هنا
    // 1. أعلن ومهّئ المتغيرات
    // 2. أعلن عن المؤشرات
    // 3. استخدم عامل العنوان لتعيين العناوين
    // 4. اطبع العناوين باستخدام التنسيق الموضح
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم C عبر الإنترنت