3.3 פוינטרים תרגול
תרגול – פוינטרים, מערכים, מחרוזות ו־scanf¶
תרגול 1 – שימוש ב־scanf והצבה למשתנה¶
-
כתבו תוכנה שמבקשת מהמשתמש להכניס מספר שלם.
-
שמרו את המספר במשתנה מסוג
int. -
הדפיסו את המספר באמצעות
printf.
תרגול 2 – scanf עם כתובת¶
-
אתחלו משתנה מסוג
char. -
בקשו מהמשתמש להכניס תו, וקראו אותו בעזרת
scanf. -
הדפיסו את ערך ה־ASCII של התו בעזרת
%d.
תרגול 3 – מחרוזות ומצביעים (char*)¶
-
אתחלו משתנה מסוג
char*עם הערך"hello". -
הדפיסו את המחרוזת עם
%s. -
הדפיסו את המצביע עצמו עם
%p.
תרגול 4 – מערכים ו־scanf¶
-
הגדירו מערך מסוג
intבגודל 3. -
בקשו מהמשתמש להכניס 3 מספרים, כל אחד עם
scanf. -
הדפיסו את כל שלושת המספרים.
תרגול 5 – קשר בין פוינטרים ומערכים¶
-
הגדירו מערך מסוג
intבגודל 3 והכניסו לתוכו ערכים ידנית (ללאscanf). -
אתחלו פוינטר מסוג
int*שמצביע על המערך. -
הדפיסו את הערכים של המערך גם בעזרת הסינטקס
arr[i]וגם בעזרת*(p + i)(ללא לולאה – שורה שורה).
תרגול 6 – scanf עם מחרוזות¶
-
צרו מערך מסוג
charבגודל 100. -
בקשו מהמשתמש להכניס מחרוזת אחת עם
scanf. -
הדפיסו את המחרוזת.
טיפ: אין צורך ב־
&כאשר עושיםscanfלמערך תווים, כי הוא כבר מצביע.
תרגול 7 – argv ו־argc¶
-
כתבו תוכנית שמדפיסה את כמות הארגומנטים שהתקבלו (
argc). -
הדפיסו את שם התוכנית (argv[0]) ואת הארגומנט הראשון שהוזן (אם קיים).
תרגול 8 – char** וניתוח מחרוזות¶
-
כתבו תוכנית שמקבלת ארגומנט מ־
argv[1]שהוא מחרוזת. -
אתחלו פוינטר מסוג
char*שמצביע עלargv[1]. -
הדפיסו את התו הראשון, השני והשלישי מהמחרוזת.
בונוס: תרגול מסכם¶
-
בקשו מהמשתמש להכניס שם (מחרוזת), גיל (
int) ומספר אהוב (int). -
הדפיסו משפט:
"שלום %s, אתה בן %d, והמספר האהוב עליך הוא %d" -
הסבר את הקוד אסמבלי שנוצרה מהתוכנה.