משתנים מקומיים ב-c - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

משתנים מקומיים ב-c


eliom

Recommended Posts

שלום.

אני לא לומד מתוך ספר.

ואם אפשר הסבר לפי קטע קוד הזה.

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

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

מה הכוונה?.

ולמה התוצאה הזאת.

After calling demo(), x = 1 and y = 2.  

לא מודפסת לפני זאת?

Within demo(), x = 88 and y = 99.

1:   /* Demonstrates local variables. */2:
3: #include <stdio.h>
4:
5: int x = 1, y = 2;
6:
7: void demo(void);
8:
9: main()
10: {
11: printf("\nBefore calling demo(), x = %d and y = %d.", x, y);
12: demo();
13: printf("\nAfter calling demo(), x = %d and y = %d\n.", x, y);
14:
15: return 0;
16: }
17:
18: void demo(void)
19: {
20: /* Declare and initialize two local variables. */
21:
22: int x = 88, y = 99;
23:
24: /* Display their values. */
25:
26: printf("\nWithin demo(), x = %d and y = %d.", x, y);
27: }
Before calling demo(), x = 1 and y = 2.
Within demo(), x = 88 and y = 99. After calling demo(), x = 1 and y = 2

קישור לתוכן
שתף באתרים אחרים

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

ולשאלתך השנייה, למה שזה יודפס קודם?

קישור לתוכן
שתף באתרים אחרים

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

ולשאלתך השנייה, למה שזה יודפס קודם?

מה זאת אומרת מתייחסים רק למשתנים בתוך פונקציה?

קישור לתוכן
שתף באתרים אחרים

אני אנסה להסביר שוב.

בפעם הראשונה והאחרונה יודפסו 1 ו2 כי אתה נמצא בקטע הראשי MAIN.

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...