Menu
Coddy logo textTech

אופרטור ביטול הפניה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 3 מתוך 56.

עכשיו, כשאתה יכול לקבל מצביע למשתנה, עליך ללמוד איך לגשת לערך שבכתובת הזיכרון הזו ולשנות אותו. כאן אופרטור ביטול ההפניה (*) הופך לחיוני.אופרטור ביטול ההפניה * משמש לגישה לערך המאוחסן בכתובת הזיכרון שאליה מצביע מצביע. כשמציבים * לפני משתנה מצביע, הוא "עוקב" אחר הכתובת ומחזיר את הערך המאוחסן בה.זכור שאופרטור קבלת הכתובת (&) משמש לקבלת כתובת הזיכרון של משתנה, ואילו אופרטור ההפניה (*) משמש לגישה לערך שבכתובת זו.
int number = 42;
int* ptr = &number;  // ptr שומר את הכתובת של number
int value = *ptr;    // value מכיל כעת 42
אפשר גם להשתמש באופרטור ביטול ההפניה כדי לשנות את המשתנה המקורי דרך המצביע. כשמקצים ערך חדש ל־*ptr, למעשה משנים את הערך המאוחסן במיקום הזיכרון הזה:
*ptr = 100;  // משנה את number ל-100
// הערך של number הוא עכשיו 100, אף ששינינו אותו דרך ptr
הגישה העקיפה הזו היא שהופכת מצביעים לעוצמתיים כל כך — אפשר לקרוא ולשנות משתנים מכל מקום בתוכנית, כל עוד יש לך מצביע אליהם.
challenge icon

אתגר

קל

צרו תוכנית שמדגימה את אופרטור ביטול ההפניה על ידי שינוי הערך של משתנה באמצעות מצביע.

הקלט הבא יסופק:

  • מספר שלם המייצג את הערך ההתחלתי של משתנה
  • מספר שלם המייצג את הערך החדש שיוצב באמצעות המצביע

על התוכנית שלכם:

  1. להכריז על משתנה מספר שלם בשם temperature ולאתחל אותו בערך הקלט הראשון
  2. ליצור מצביע בשם tempPtr שמצביע למשתנה temperature
  3. להדפיס את הערך המקורי באמצעות ביטול הפניה למצביע
  4. להשתמש באופרטור ביטול ההפניה כדי לשנות את הערך של temperature לערך הקלט השני באמצעות המצביע
  5. להדפיס שוב את הערך החדש באמצעות ביטול הפניה למצביע

השתמשו בתבנית הפלט המדויקת הבאה:

Original value: [original value]
New value: [new value]

נסו בעצמכם

#include <iostream>
using namespace std;

int main() {
    // קראו את ערכי הקלט
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: כתבו את הקוד שלכם להלן
    // 1. הכריזו על המשתנה temperature ואתחלו אותו עם initialValue
    // 2. צרו מצביע tempPtr המצביע על temperature
    // 3. הדפיסו את הערך המקורי באמצעות גישה לערך שאליו מצביע המצביע
    // 4. שנו את הערך של temperature דרך המצביע באמצעות newValue
    // 5. הדפיסו את הערך החדש באמצעות גישה לערך שאליו מצביע המצביע
    
    return 0;
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C++ אונליין