Menu
Coddy logo textTech

אופרטור לקיחת הכתובת (&)

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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 אונליין