Menu
Coddy logo textTech

מערכים ופונקציות

חלק מהיחידה יסודות במסלול ה-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);

תחביר הכוכבית (*) מתייחס למצביעים שיידונו בקורס הבא.

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר C++ אונליין