דף הבית שיעורים תוספות לא מונחות עצמים משתנה הפניה
 
משתנה הפניה
 
משתני הפניה (reference variables) הם תוספת ל-++C. הם טיפוסים שונים מהטיפוסים שהכרת ב-C, אך הם יכולים להיות שימושיים מאד.
הדרך הטובה ביותר להבין אותם היא ע"י דוגמא:

void Sample(int a);

int main()
{
 int b = 4;
 Sample(b);
 return 0;
}

void Sample(int a)
{
 a = 5;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כזכור, הפונקציה Sample לא תשנה את המשתנה המקורי b שהועבר לה, אלא תיצור העתק שלו, תשנה אותו, והעתק זה "ימות" עם החזרה מהפונקציה והמשתנה b יישאר ללא שינוי.
כדי לשנות את המשתנה b המקורי, היה עלינו להעביר לפונקציה Sample מצביע למשתנה, ולא את המשתנה עצמו:

void Sample(int *a);

int main()
{
 int b = 4;
 Sample(&b);
 return 0;
}

void Sample(int *a)
{
 *a = 5;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

בפעולות מסוג זה משתמשים הרבה בתכנות ב-C. פעולות אלו יעבדו גם ב-++C, אך יש דרך אחרת לעשות זאת, ע"י שימוש במשתנה הפניה.
נשנה את סוג המשתנה המועבר לפונקציה. ממצביע למשתנה הפניה, ונשנה גם את הפרמטר המועבר לפונקציה בתוך הפונקציה main, כך שייראה כמו int. באותה צורה נשנה את הופעת המשתנה בפונקציה Sample, כך שגם שם הוא ייראה כ-int:

void Sample(int &a);

int main()
{
 int b = 4;
 Sample(b);
 return 0;
}

void Sample(int &a)
{
 a = 5;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

שימוש במשתנה הפניה דומה מאד להעברת משתנה int, אך הוא בעצם דומה לשימוש במצביע בדרך אחת חשובה: שינויים בפרמטר יגרמו לשינויים ב-int המקורי. כלומר לאחר שהפונקציה Sample תסתיים, המשתנה b ישתנה מ-4 ל-5.