גישה לאיברים
חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 54 מתוך 63.
מערכים מאחסנים כמה ערכים מאותו סוג. אנחנו משתמשים במיקום האינדקס כדי לגשת לאיברים בודדים במערך.
ב-C, האינדקסים של מערך מתחילים ב-0. פירוש הדבר שהאיבר הראשון נמצא באינדקס 0, השני באינדקס 1, וכן הלאה.
צור מערך של מספרים שלמים עם 5 איברים:
int numbers[5] = {10, 20, 30, 40, 50};גישה לאיבר הראשון (אינדקס 0):
int firstElement = numbers[0];לאחר הרצת הקוד שלמעלה, firstElement מכיל:
10גש לאיבר השלישי (אינדקס 2):
int thirdElement = numbers[2];פעולה זו שומרת את הערך 30 בתוך thirdElement.
ניסיון לגשת לאיבר מחוץ לגבולות המערך (כמו numbers[5] בדוגמה שלנו) מוביל להתנהגות לא מוגדרת ועלול לגרום לקריסת התוכנית.
אתגר
קלכתבו פונקציה בשם getElement ש:
- מקבלת מערך של מספרים שלמים ואת הגודל שלו כפרמטרים
- מקבלת פרמטר של אינדקס
- אם האינדקס תקין (בתחומי המערך), היא מדפיסה את האיבר שבמיקום הזה
- אם האינדקס אינו תקין (מחוץ לתחומי המערך), היא מדפיסה
Index out of bounds
הפרמטר
indexכבר מתחיל מ-0: השתמשו בו ישירות בתורarr[index](האינדקס5הוא האיבר השישי). האינדקסים התקינים הם מ-0עדsize - 1.
נסו בעצמכם
#include <stdio.h>
void getElement(int arr[], int size, int index) {
// כתבו כאן את הקוד שלכם
}
int main() {
int size, index;
// קראו את גודל המערך
scanf("%d", &size);
int arr[size];
// קראו את איברי המערך
for(int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
// קראו את האינדקס שאליו יש לגשת
scanf("%d", &index);
getElement(arr, size, index);
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין