תוֹכֶן
- הגדרה - מה המשמעות של מפעיל העקיפה?
- מבוא ל- Microsoft Azure ו- Microsoft Cloud | במהלך מדריך זה תוכלו ללמוד על אודות מיחשוב ענן וכיצד Microsoft Azure יכולה לעזור לכם להעביר ולנהל את העסק שלכם מהענן.
- Techopedia מסביר את מפעיל העקיפה
הגדרה - מה המשמעות של מפעיל העקיפה?
מפעיל indirection, במונח של C #, הוא מפעיל המשמש להשגת ערך של משתנה שאליו מצביע המצביע. בעוד שמצביע שמצביע על משתנה מספק גישה עקיפה לערך המשתנה המאוחסן בכתובת הזיכרון שלו, מפעיל העקיפה מפנה את המצביע ומחזיר את ערך המשתנה באותו מיקום זיכרון. מפעיל העקיפה הוא מפעיל שאינו מיוצג על ידי הסמל (*).ניתן להשתמש במפעיל העקיפה עם המצביע למצביע למספר שלם, מערך חד ממדי של מצביעים למספרים שלמים, מצביע לטבלה, ומצביע לסוג לא ידוע.
מפעיל העקיפה ידוע גם בשם מפעיל הגמילה.
מבוא ל- Microsoft Azure ו- Microsoft Cloud | במהלך מדריך זה תוכלו ללמוד על אודות מיחשוב ענן וכיצד Microsoft Azure יכולה לעזור לכם להעביר ולנהל את העסק שלכם מהענן.
Techopedia מסביר את מפעיל העקיפה
הסמל (*) משמש בהצהרת סוגי המצביעים ובביצוע indirection של המצביע, ואילו מפעיל הכתובת () מחזיר את הכתובת של משתנה. מכאן שמפעיל העקיפה וכתובת המפעיל הם היפוכים זה מזה.C # מאפשר להשתמש במצבים רק באזור לא בטוח, מה שמשמע כי בטיחות הקוד באזור זה לא מאומתת על ידי זמן הריצה השפה הנפוצה (CLR). באזור הלא בטוח, מפעיל indirection רשאי לקרוא ולכתוב למצביע. ההצהרות C # הבאות ממחישות את השימוש של מפעיל העקיפה:
- int a = 1, b; // שורה 1
- int * pInt = & a; // שורה 2
- b = * pInt; // שורה 3
יש להשתמש במפעיל הניתוח להפניית מצביע תקף עם כתובת מיועדת לסוג אליו הוא מצביע, כדי להימנע מהתנהגות בלתי מוגדרת בזמן ריצה. אין להחיל אותו על מצביע ריק או על ביטוי שאינו מסוג המצביע, כדי למנוע שגיאות מהדר. עם זאת, לאחר השלכת מצביע חלל לסוג המצביע הימני, ניתן להשתמש במפעיל העקיפה.
בעת הכרזת מספר עצות בהצהרה יחידה, יש לכתוב את מפעיל העקיפה רק פעם אחת עם הסוג הבסיסי ולא לחזור על כל שם המצביע. מפעיל ה- indirection מפיץ ב- C #, בניגוד ל- C ו- C ++. כאשר מפעיל העקיפה מוחל על מצביע null, הדבר מביא להתנהגות מוגדרת יישום. מכיוון שמפעיל זה משמש במונח לא בטוח, יש להשתמש במילת המפתח לא בטוחה לפניו יחד עם אפשרות / לא בטוח במהלך ההילוך. הגדרה זו נכתבה במונחי C #