C++/מצביעים והמשתנה הפניה: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
שורה 25:
</syntaxhighlight>
==מהו משתנה
המשתנה
גם כאן, כמו במצביע, השימוש העיקרי הוא בהעברתו כארגומנט לפונקציה, במקרה שאנו רוצים שהוא יושפע ממנה.
==יישום בדוגמה פשוטה==
הבה נגדיר משתנה
<source lang="c++">
int num;
int &ref = num;
</source>
למשתנה
בדומה למקרה של הכרזת מצביע, שם נקדים את התו *.<br />
שימו לב: לא התרחשה כאן השמת ערכים, אלא
עכשיו אם נשנה את ערכו של ref, ישתנה גם ערכו של num, וכך גם ההפך:
<source lang="c++">
ref = 10;
cout << num; //10
num = 20;
cout << ref; //20
</source>
ניתן לראות שלקביעת
==שימוש בפונקציות==
כמו שאמרנו קודם, השימוש העיקרי של
לדוגמה, נכתוב פונקציה שמחליפה בין ערכיהם של שני משתנים בשם ()swap:
<source lang="c++">
#include<iostream.h>
void swap(int &a, int &b);
int main() {
int num1 = 5, num2 = 10;
return 0;▼
▲return 0;
}
void swap(int &a,int &b) {
a = b;▼
b = temp;
▲a=b;
▲b=temp;
}
</source>
שימו לב שהפרמטרים המועברים לפונקציה, הם ללא שום אופרטור מצביע.<br /> ובכל זאת הפונקציה משפיעה על המשתנים num1
▲==משתנים מתייחסים כערכים מוחזרים==
▲ניתן לייצור משתנה מיוחס, שיוחזר מפונקציה (כאן num הוא משתנה גלובלי כלשהו):
<source lang="c++">
int &getnum() {
int &ref = num;
}
</source>
הטיפוס המוחזר של הפונקציה ()getnum הוא
אפשר להשתמש בפונקציה בכדי לקבל את ערכו של num כך:
<source lang="c++">
cout << getnum();
</source>
פעולה כזאת אפשרית גם ללא
<source lang="c++">
getnum() = 50;
</source>
עכשיו ערכו של num הוא 50.
|