ההבדל בין משתנה מקומי וגלובלי

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 7 מאי 2024
Anonim
פייתון למתחילים, פרק 24: משתני Value ומשתני Reference
וִידֵאוֹ: פייתון למתחילים, פרק 24: משתני Value ומשתני Reference

תוֹכֶן


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

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

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

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. יתרונות
  5. חסרונות
  6. סיכום

טבלת השוואה:

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

הגדרת משתנה מקומי

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


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

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

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

הגדרת המשתנה הגלובלי

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

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

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


  1. משתנים מקומיים נקראים 'מקומיים' מכיוון שהם ידועים רק בהצהרות שנכתבו בפונקציה שבתוכה הם מוצהרים ולא ידועים לשום פונקציה אחרת שנמצאת מחוץ לחסימת הפונקציות. במקרה של משתנה גלובלי, הם ידועים לכל פונקציה שנמצאת בתוכנית; מכאן שהם מכונים 'גלובלי'.
  2. משתנים גלובליים שומרים על ערכם עד שהתוכנית נמצאת בשלב הביצוע, מאחר שהם מאוחסנים במקום קבוע שהחליט המהדר. משתנים מקומיים מאוחסנים בערימה; לפיכך, הם לא שומרים על ערכם שכן 'ערימה' היא דינאמית באופייה, אך ניתן לכוון את המהדר לשמור על ערכם, על ידי שימוש במתקן 'סטטי'.
  3. אם מוכרז על משתנה גלובלי ומשנה מקומי עם אותו שם אז כל ההצהרות של גוש קוד בו מוכרז משתנה מקומי יתייחסו רק למשתנה מקומי ולא יגרמו שום השפעה למשתנה גלובלי.
  4. משתנה מקומי נהרס כאשר השליטה ביציאת התוכנית מהבלוק בו מוכרז המשתנה המקומי. עם זאת, משתנה גלובלי נהרס כאשר כל התוכנית מסתיימת.

יתרונות

משתנה מקומי

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

משתנה גלובלי

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

חסרונות

משתנה מקומי

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

משתנה גלובלי

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

סיכום:

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