גישה לאיברים
חלק מהיחידה יסודות במסלול ה-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
זכרו שהאינדקסים במערכים מתחילים ב־0, לכן אם רוצים את האיבר השישי, צריך לגשת אל array[5]
נסו בעצמכם
#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 אונליין