Trách nhiệm kiểm sốt tính hợp lệ của chỉ số mảng

Một phần của tài liệu Cplusplus_2011 (Trang 78 - 79)

Chương 4 Hàm

5.1.2. Trách nhiệm kiểm sốt tính hợp lệ của chỉ số mảng

Đối với mảng được khai báo với kích thước n, chỉ số của các phần tử trong mảng đó là các số nguyên từ 0 đến n–1. Ngồi ra, các giá trị khác đều khơng hợp lệ. Việc truy nhập mảng bằng các chỉ số không hợp lệ, chẳng hạn khi truy nhập đến score[-1] hay score[n], có thể dẫn đến các thay đổi không mong muốn đối với dữ liệu ở vùng bộ nhớ bên ngồi mảng (có thể thuộc về các biến khác). Trong nhiều ngôn ngữ lập trình, việc này được kiểm soát tự động để tránh trường hợp truy nhập với chỉ số không hợp lệ. Tuy nhiên, trong C++ việc truy nhập đến các phần tử của mảng với chỉ số nhỏ hơn 0 hoặc lớn hơn n–1 không hề phạm lỗi cú pháp, việc truy nhập ra ngoài mảng không gây lỗi khi dịch nhưng có thể gây lỗi khi chạy, lập trình viên có trách nhiệm kiểm sốt các giá trị chỉ số mảng để tránh trường hợp này.

#include <iostream> using namespace std;

const int NUMBER_COURSES = 7; int main()

{

int score[NUMBER_COURSES]; float sum = 0;

for (int course = 0; course < NUMBER_COURSES; count++) {

cout << "Enter the score for course #" << course << ": "; cin >> score[course];

sum = sum + score[course]; }

cout << "The average score is " << sum/NUMBER_COURSES; return 0;

}

Kết quả chạy chương trình

Enter the score for course #0: 30 Enter the score for course #1: 85 Enter the score for course #2: 76 Enter the score for course #3: 90 Enter the score for course #4: 72 Enter the score for course #5: 80 Enter the score for course #6: 88 The average score is 74.42857

Hình 5.1: Ví dụ về khai báo và sử dụng mảng.

Một phần của tài liệu Cplusplus_2011 (Trang 78 - 79)

Tải bản đầy đủ (PDF)

(145 trang)