מערכים ופונקציות
חלק מהיחידה יסודות במסלול ה-C++ של Coddy. שיעור 62 מתוך 74.
אי אפשר להעביר מערכים ישירות לפונקציות כמערכים שלמים. כשמנסים להעביר מערך לפונקציה, הוא "מתנוון" למצביע לאיבר הראשון שלו.
לדוגמה:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}std::size(arr) לא מתקמפל כאן, כי arr הוא למעשה מצביע, ולא מערך, ומצביע לא מאחסן את גודל המערך. על מצביעים נלמד בקורס הבא.
זו הסיבה שכאשר מעבירים מערכים לפונקציות, בדרך כלל צריך להעביר את הגודל כפרמטר נפרד:
void processArray(int arr[], int size) {
// כעת אפשר לעבוד בבטחה עם המערך באמצעות הפרמטר size
}כך קוראים לפונקציה:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);כמו כן, אי אפשר להחזיר מערך מתוך פונקציה:
int[] processArray(int arr[]) {
return arr;
}הדבר אינו חוקי. במקום זאת, עליך להשתמש בתחביר *:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);תחביר הכוכבית (*) מתייחס למצביעים, שיידונו בקורס הבא.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר הפעולהקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזותתרגלו בעצמכם: קומפיילר C++ אונליין