Truy cập phần tử
Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 54 trên 63.
Mảng lưu trữ nhiều giá trị cùng kiểu dữ liệu. Ta dùng vị trí chỉ số để truy cập từng phần tử trong mảng.
Trong C, chỉ số mảng bắt đầu từ 0. Điều này có nghĩa là phần tử đầu tiên ở chỉ số 0, phần tử thứ hai ở chỉ số 1, v.v.
Tạo một mảng số nguyên có 5 phần tử:
int numbers[5] = {10, 20, 30, 40, 50};Truy cập phần tử đầu tiên (chỉ số 0):
int firstElement = numbers[0];Sau khi chạy đoạn code trên, firstElement chứa:
10Truy cập phần tử thứ ba (chỉ số 2):
int thirdElement = numbers[2];Đoạn này lưu giá trị 30 vào thirdElement.
Việc cố truy cập một phần tử nằm ngoài giới hạn của mảng (như numbers[5] trong ví dụ của chúng ta) dẫn đến hành vi không xác định và có thể khiến chương trình bị lỗi.
Thử thách
DễViết một hàm (function) tên là getElement để:
- Nhận một mảng (array) số nguyên (integer) và kích thước của mảng làm tham số (parameter)
- Nhận một tham số chỉ số (index)
- Nếu chỉ số hợp lệ (nằm trong phạm vi của mảng), in ra phần tử (element) tại chỉ số đó
- Nếu chỉ số không hợp lệ (nằm ngoài phạm vi của mảng), in ra
Index out of bounds
Tham số
indexđã dùng chỉ số bắt đầu từ 0: hãy dùng trực tiếp làmarr[index](chỉ số5là phần tử thứ 6). Các chỉ số hợp lệ nằm trong khoảng từ0đếnsize - 1.
Tự làm thử
#include <stdio.h>
void getElement(int arr[], int size, int index) {
// Viết code của bạn ở đây
}
int main() {
int size, index;
// Đọc kích thước của mảng
scanf("%d", &size);
int arr[size];
// Đọc các phần tử của mảng
for(int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
// Đọc chỉ số cần truy cập
scanf("%d", &index);
getElement(arr, size, index);
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
2Biến
Kiểu dữ liệuSố nguyênSố thực - DoubleKý tựGiá trị BooleanHằng sốCơ bản về printfQuy tắc đặt tên biếnChuyển đổi kiểu phần 1Chuyển đổi kiểu phần 2Thử thách ôn tậpTự luyện tập: Trình biên dịch C online