Đào tạo khoa học máy tính không thể làm cho bất cứ ai trở thành lập trình viên hàng đầu, cũng như học cách sử dụng cọ và màu không thể làm cho bất cứ ai trở thành họa sĩ hàng đầu. Eric S. Raymond
STDIO C++ cung cấp cho chúng ta cấu trúc mảng để tiết kiệm thời gian xử lý chương trình. Một mảng là một chuỗi hữu hạn các phần tử có cùng kiểu dữ liệu được lưu trữ tại các vùng nhớ liên tiếp nhau. Mỗi phần tử sẽ được xác định bằng một chỉ số - số thứ tự của nó trong mảng.
Nội dung bài viết

Giới thiệu

Giới thiệu khái niệm mảng trong C++. Bài viết giới thiệu khái niệm, không đi sâu vào kỹ thuật.

Tiền đề bài viết

Bài viết nằm trong chương trình học lập trình cơ bản với ngôn ngữ C++ của STDIO.

Đối tượng hướng đến

Bài viết dành cho những người mới bắt đầu làm quen với ngôn ngữ lập trình C++.

Mảng trong C++

Mảng là gì?

Giả sử chúng ta cần lưu thông tin điểm số của 100 học sinh, và việc khai báo 100 biến tên student1, student2, student3,....student100 để làm việc này quả thật rất tốn thời gian và rắc rối. Và thật may mắn khi C++ cung cấp cho chúng ta một cấu trúc dữ liệu để có thể làm được việc này một cách hiệu quả, đó là sử dụng mảng.

Một mảng là một chuỗi hữu hạn các phần tử có cùng kiểu dữ liệu được lưu trữ tại các vùng nhớ liên tiếp nhau. Mỗi phần tử sẽ được xác định bằng một chỉ số - số thứ tự của nó trong mảng.

ss_1

Ví dụ: Mảng a có 4 phần tử - 4 giá trị int được lưu trữ liên tiếp nhau có thứ tự từ 0 – 3 như hình trên.

Lưu ý: chỉ số của mảng trong C++ bắt đầu từ 0.

Kích thước của mảng

Vì mảng là tập hợp các phần tử cùng kiểu dữ liệu, nên kích thước của nó sẽ là tổng kích thước của tất cả các phần tử trong nó.

Ví dụ: mảng a ở trên có 4 phần tử int, mỗi phần tử int lại chiếm  4 bytes trên bộ nhớ, vì vậy kích thước của a sẽ là 4 * 4 = 16  bytes. Nhưng nếu đây là mảng các phần tử short – chiếm 2 bytes trên bộ nhớ thì kích thước mảng a chỉ là 4 * 2 = 8 bytes.

Ta cũng có thể dẽ dàng xác định kích thước của mảng a bằng cách sử dụng: sizeof(a);

Truy xuất phần tử mảng

Như đã nói, mỗi phần tử mảng có một chỉ số để xác định, vậy chúng ta sử dụng chỉ số này truy xuất đến các phần tử này. Có 2 cách cơ bản như sau:

  • tên_mảng[chỉ_số]: như trong ví dụ trên sẽ là a[0], a[1], a[2]...
  • *(tên_mảng + chỉ số): như trong ví dụ trên sẽ là *(a + 0), *(a + 1), *(a + 2)...

Thật ra, khi chúng ta sử dụng a[0], trình biên dịch cũng sẽ thực hiện phép cộng a + 0 rồi sau đó mới lấy giá trị tại địa chỉ a + 0 qua *(a + 0). Vậy nếu chúng ta sử dụng 0[a], trình biên dịch cũng sẽ “ngây thơ” thực hiện 0 + a và lấy giá trị tại địa chỉ này qua *(0 + a), kết quả là như nhau, vậy chúng ta cũng có thể sử dụng 0[a], 1[a], 2[a]... để truy xuất các phần tử của mảng.

Đọc tiếp

Sử Dụng Mảng Trong C++.

Bạn cần hỗ trợ các dự án kết nối không dây?

Quí doanh nghiệp, cá nhân cần hỗ trợ, hợp tác các dự án IoT, kết nối không dây. Vui lòng liên hệ, hoặc gọi trực tiếp 0942.111912.

  • TỪ KHÓA
  • Arduino
  • ESP32
  • ESP8266
  • Wifi
  • Bluetooth
  • Zigbee
  • Raspberry Pi
THẢO LUẬN
ĐÓNG