מה ההבדל בין int ל-int& ב-C++?

Mh Hhbdl Byn Int L Int B C



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

בואו נדגים את השאילתות לעיל אחת לאחת.







מה זה int ב-C++?

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



משתנה מסוג מספר שלם לוקח 4 בתים בזיכרון. ב-C++ מוזכרת להלן ההכרזה על המשתנה מסוג מספר שלם:



int א = 10 ;





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

מה זה int& ב-C++?

ה-int& פירושו הפניה למשתנה מסוג מספר שלם. זה אומר שהוא יצביע על משתנה מסוג מספר שלם שכבר קיים באחסון. יש לאתחל משתנה התייחסות כדי לקשר לפריט אמיתי מאותו סוג כאשר הוא מוצהר. להלן האתחול של int&:



int a = 5 ;
int & ref_var = a;

במקרה זה, ה ref_var מהווה התייחסות ל א . כל פעולה פועלת ref_var מייצג פעולה על א מִשְׁתַנֶה. לדוגמה, אם נקליד ref_var= 25; הערך של a ישתנה ל-25 בגלל ה ref_var משתנה הוא רק כינוי עבור א מִשְׁתַנֶה.

דוגמאות: ההבדל בין int ל-int& ב-C++

כדי להבין את ההבדל בין int ל-int&, עיין בדוגמאות שלהלן:

#include
שימוש במרחב שמות std;

int main ( ) {
int a = 2 ; // ליצור משתנה מספר שלם a ולהקצות לו את הערך 2
int b = a; // צור עותק של a והקצה אותו ל-b
א = 4 ; // לשנות את הערך של to 4
cout << א << endl; // תְפוּקָה: 4
cout << ב << endl; // תְפוּקָה: 2
לַחֲזוֹר 0 ;
}

תְפוּקָה

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

#include
שימוש במרחב שמות std;

int main ( ) {
int a = 2 ; // ליצור משתנה מספר שלם a ולהקצות לו את הערך 2
int & ref_var = a; // ליצור הפניה לא
א = 4 ; // לשנות את הערך של to 4
cout << א << endl; // תְפוּקָה: 4
cout << ref_var << endl; // תְפוּקָה: 4
לַחֲזוֹר 0 ;
}

תְפוּקָה

בדוגמה זו, ref_var מהווה התייחסות ל א . כאשר הערך של א משתנה, הערך של ref_var משתנה גם הוא, כי שניהם מתייחסים לאותו ערך.

הבחנות מפתח של int ו-int& בשפת C++

הטבלה הבאה תסביר כמה הבדלים כלליים בין int ו-int&:

int int&
סוג נתונים שהוא פרימיטיבי ומכיל ערך מספרי הוא int. int& היא נקודת גישה למשתנה מספרי המשמש ככינוי למשתנה בפועל.
השימוש ב-int מקיים אינטראקציה עם הערך האמיתי של המשתנה. Int& הוא כינוי למספר שלם שניתן להחיל כדי לשנות את המשתנה בפועל.
משתנה מסוג int לוקח הקצאת זיכרון חדשה. int& אינו מקצה זיכרון חדש, מכיוון שהוא משתמש בזיכרון המשתנה הקיים.
ההיקף ומשך הזמן של משתנים שלמים אינם תלויים. ההיקף ומשך הזמן של int& אינם מצוינים. הם מתרחשים רק בזמן שמשתנה ההתייחסות int שאליו הם מתייחסים מתרחש.

סיכום

כמו שפות תכנות אחרות, גם C++ נותן פונקציונליות רבות שכבר מוגדרות במתורגמן C++. אחד מסוגי הנתונים הפופולריים הוא int סוג נתונים המקבל נתונים שלמים, ו int& הוא הפניה למשתנה int שמבצע שינויים ישירים ב int משתנים. ההבדל העיקרי בין int ו int& is int מכריז על משתנה חדש, while int& הוא משתנה ייחוס שמבצע שינויים במשתנים המוצהרים של ה- int סוּג.