משתנה הוא שם למקום בזיכרון המחשב בו אתה מאחסן נתונים מסוימים.
דמיין מחסן גדול מאוד עם הרבה מפרצי אחסון, שולחנות, מדפים, חדרים מיוחדים וכו '. כל אלה מקומות בהם תוכלו לאחסן משהו. בואו נדמיין שיש לנו ארגז בירה במחסן. היכן בדיוק הוא ממוקם?
לא נאמר שהוא מאוחסן 31 '2 "מהקיר המערבי ו -27' 8" מהקיר הצפוני. בתוך תכנות תנאי שגם לא נאמר שהשכר הכולל ששולם השנה מאוחסן בארבעה בתים המתחילים במיקום 123,476,542,732 RAM.
נתונים במחשב אישי
המחשב יציב משתנים במיקומים שונים בכל פעם שהתוכנית שלנו מופעלת. עם זאת, התוכנית שלנו יודעת בדיוק איפה הנתונים נמצאים. אנו עושים זאת על ידי יצירת משתנה להתייחס אליו ואז נותנים למהדר להתמודד עם כל הפרטים המבולגנים לגבי מקום הימצאו בפועל. חשוב לנו הרבה יותר לדעת איזה סוג נתונים נשמור במיקום.
במחסן שלנו, הארגז שלנו עשוי להיות בחלק 5 של מדף 3 באזור המשקאות. במחשב האישי התוכנית תדע בדיוק היכן המשתנים שלה ממוקמים.
משתנים הם זמניים
הם קיימים כל עוד הם נחוצים ואז הם נפטרים. אנלוגיה נוספת היא שמשתנים הם כמו מספרים במחשבון. ברגע שאתה לוחץ על לחצני הכיבוי או הכיבוי, מספרי התצוגה הולכים לאיבוד.
כמה גדול משתנה
גדול ככל שצריך ולא יותר. הקטן ביותר שמשתנה יכול להיות הוא סיביות אחד והגדול ביותר הוא מיליוני בתים. מעבדים נוכחיים מטפלים בנתחים בגושים של 4 או 8 בתים בכל פעם (מעבד 32 ו- 64 ביט), כך שככל שהמשתנה גדול יותר, ייקח יותר לקרוא אותו או לכתוב אותו. גודל המשתנה תלוי בסוגו.
מהו סוג משתנה?
במודרני שפות תכנות, המשתנים מוכרזים ככאלה.
מלבד מספרים, המעבד אינו מבצע הבחנה כלשהי בין הנתונים בזיכרון שלו. הוא מתייחס אליו כאל אוסף של בתים. מעבדים מודרניים (מלבד אלה שבטלפונים ניידים) יכולים בדרך כלל להתמודד גם עם מספרים שלמים וגם עם אריתמטיקה של נקודה צפה בחומרה. ה מהדר צריך לייצר הוראות קוד מכונות שונות לכל סוג, כך שידע מה סוג המשתנה עוזר לו לייצר קוד אופטימלי.
אילו סוגי נתונים יכול משתנה להחזיק?
הסוגים הבסיסיים הם ארבעה אלה.
- מספרים שלמים (שניהם חתומים וגם לא חתומים) בגודל 1,2,4 או 8 בתים. מכונה בדרך כלל אינץ '.
- נקודה צפה מספרים עד 8 בתים בגודל.
- ביטים. אלה מסודרים ב- 4s או 8s (32 או 64 bit) וקוראים ונכנסים מרשמי ה- CPU.
- טקסט מחרוזות, עד מיליארדי בתים בגודל. למעבדים יש הוראות מיוחדות לחיפוש בלוקים גדולים של בתים בזיכרון. זה מאוד שימושי לפעולות טקסט.
יש גם סוג משתנה כללי, המשמש לעיתים קרובות בשפות סקריפטים.
- וריאנט - זה יכול להכיל כל סוג אך הוא איטי לשימוש.
דוגמה לסוגי נתונים
- מערכים מסוגים - מגירות בודדות כמו מגירות בארון, קופסאות מיון דו-ממדיות כמו סניפי דואר או תלת מימדי כמו ערימה של ארגזי בירה. יכול להיות כל מספר מידות, עד גבולות המהדר.
- אנומים שהם תת-מגבלה של מספרים שלמים. לקרוא על מה זה enum.
- מבנים הם משתנה מורכב בו משתנים כמה משתנים יחד במשתנה אחד גדול.
- זרמים מספקים דרך לניהול קבצים. הם סוג של א מחרוזת.
- חפצים, הם כמו מבנים אבל עם טיפול נתונים הרבה יותר מתוחכם.
היכן מאוחסנים משתנים?
בזיכרון אך בדרכים שונות, תלוי באופן השימוש בהם.
- בכל העולם. כל חלקי התוכנית יכולים לגשת ולשנות את הערך. כך נהגו שפות ישנות יותר כמו Basic ו- Fortran לטפל בנתונים וזה לא נחשב לדבר טוב. שפות מודרניות נוטות להרתיע מאחסון גלובלי אם כי זה עדיין אפשרי.
- על הערימה. זהו השם לאזור הראשי בו נעשה שימוש. ב- C ו- C ++, הגישה לכך היא דרך מצביע משתנים.
- על ערימה. הערימה היא גוש זיכרון המשמש לאחסון פרמטרים עבר לפונקציות ומשתנים שקיימים מקומיים לפונקציות.
סיכום
משתנים חיוניים לתכנות פרוצדורלית, אך חשוב לא לנתק יותר מדי את הבסיס יישום אלא אם כן אתה מבצע מערכות תכנות או כותב יישומים שצריכים לפעול בכמות קטנה של RAM.
הכללים שלנו לגבי משתנים:
- אלא אם כן אתה חזק על איל או שיש לך מערכים גדולים, להישאר עם אינץ ולא א בתים (8 סיביות) או int קצר (16 סיביות). במיוחד במעבדי 32 סיביות יש עונש עיכוב נוסף בגישה לפחות מ- 32 ביטים.
- להשתמש צף במקום מכפיל אלא אם כן אתה זקוק לדיוק.
- הימנע מגרסאות אלא אם כן באמת נחוץ. הם איטיים יותר.