Menu
Coddy logo textTech

הפניות כפרמטרים

שיעור 9 מתוך 14 בקורס מצביעים ב-C++ של Coddy.

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

אם נחזור לשיעור על העברת מצביעים כפרמטרים, הזכרנו שכאשר מעבירים ערכים לפונקציה, הערכים שעליהם אנחנו פועלים בתוך הפונקציה הם עותקים של הערכים המקוריים שהעברנו. 

השתמשנו במצביעים כדי לפתור את הבעיה הזאת, אבל במקום להשתמש בכתובות, בביטול הפניה, במצביעים וכו׳, אפשר פשוט לסמן את הפרמטרים שאנחנו מקבלים כהפניות ולעבוד כרגיל, כפי שהיינו עושים עם ערכים רגילים

// במקום זה
void swap(int *x, int *y) {
    int temp = *x;
    *x = *y;
    *y = temp;
    cout << *x << " " << *y << endl;
}

// אפשר לעשות כך
void swap(int &x, int &y) {
    int temp = x;
    x = y;
    y = temp;
    cout << x << " " << y << endl;
}

כעת, אם נקרא לפונקציה swap(), הערכים של שני המספרים השלמים שנעביר ישתנו לצמיתות. לכן, במקום לקבל את כתובות הזיכרון של הערכים ולשנות את הערכים בכתובות הזיכרון האלה באמצעות ביטול הפניה אליהם, פשוט מקבלים הפניות לערכים עצמם כארגומנטים ופועלים עליהם. מכיוון שהן מתייחסות לערכים המקוריים, כל שינוי הוא קבוע

quiz iconבחנו את עצמכם

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

quiz iconבחנו את עצמכם

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

quiz iconבחנו את עצמכם

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

challenge icon

אתגר

קל

השלם את הפונקציה Calculator מלפני שני שיעורים, אבל במקום להשתמש במצביעים, השתמש בהפניות לערכים של המשתנים large ו-small. בפונקציה, החסר מ-large את ההפרש בין large ל-small, והוסף את small לעצמו.

קלט
5 3

פלט
5 3
3 6

הסבר
החסרת 5 בהפרש בין 5 ל-3, שהוא 2, נותנת 5 - 2 = 3, ואילו הוספת 3 ל-3 נותנת לנו 6

הערה: אין לכתוב את הפונקציה main()

נסו בעצמכם

#include <iostream>

using namespace std;

void Calculator(// קבל את הארגומנטים large ו-small כהפניות) {
    // הכנס קוד לביצוע החישובים
}


// אין לכתוב את הפונקציה main()

כל השיעורים ביחידה מצביעים ב-C++

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