מצביעים ומערכים
שיעור 6 מתוך 14 בקורס מצביעים ב-C++ של Coddy.
עכשיו, לאחר שלמדת על מצביעים קבועים ועל מצביעים לקבועים ואתה יודע מה ההבדל ביניהם, נוכל לעבור לקשר בין מצביעים למערכים.
כשאנחנו מכריזים על מערך, שם המערך הוא למעשה מצביע קבוע לערך שאינו קבוע, ולכן הכתובת שאליה המצביע מצביע היא קבועה ואי אפשר לשנות אותה, בעוד שאפשר לשנות את הערך שהוא מכיל.
אם יש לנו int list[10];, כאן list הוא למעשה int * const, ול-list יש למעשה אותו ערך כמו ל-&list[0]
int list[] = {10, 20, 30, 40, 50};
cout << "First: " << *list << endl;
cout << "Third: " << *(list + 2) << endl;
int *ptr = list;
cout << "First again: " << *ptr;Output:
First: 10
Third: 30
First again: 10כפי שאתה רואה, אנחנו יכולים להשתמש בשם המערך list כמצביע לאיבר הראשון ולבצע את המשימות שאנחנו צריכים. החיסרון היחיד בשימוש במצביע המערך עצמו הוא שאי אפשר לשנות אותו, בעוד שכאשר יוצרים מצביע ptr שמצביע לאותו מיקום בזיכרון כמו list, אפשר לשנות בהמשך את המיקום שלו בתוכנית, למשל:
int list[] = {10, 20, 30, 40, 50};
int *ptr = list;
for(int i = 0; i < 5; i++)
cout << *ptr++ << " ";Output:
10 20 30 40 50השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
קלאל תשנה אף אחד מחלקי הקוד המוגדרים כברירת מחדל. נוצר מערך בשם numbers באמצעות המצביע numbers. השתמש בביטול הפניה למצביע כדי להדפיס את כל האיברים הזוגיים שבמערך, כשהם מופרדים ברווח.
נסו בעצמכם
#include <iostream>
using namespace std;
int main() {
// אין לשנות את הקוד שלהלן
int n, x;
cin >> n;
int numbers[n];
for(int i = 0; i < n; i++)
cin >> numbers[i];
// אין לשנות את הקוד שלעיל
// כתבו כאן את הקוד שלכם
return 0;
}כל השיעורים ביחידה מצביעים ב-C++
1יסודות המצביעים
מבוא למצביעיםהצהרה ואתחולחשבון אריתמטי - השמהחשבון אריתמטי - פעולותמצביעי constמצביעים ומערכיםתרגלו בעצמכם: קומפיילר C++ אונליין