2.7.2 Tại sao cần structure ? (2)

Chúng tôi muốn nhấn mạnh rằng khai báo trước đó không tạo ra một biến, nó chỉ mô tả một struct mà chúng ta sẽ sử dụng trong chương trình của chúng ta. Nếu chúng ta muốn khai báo một biến như là một struct chúng ta có thể làm nó bằng một trong hai cách sau →

Khai báo này thiết lập hai biến (kiểu struct) có tên tương ứng là stdnt1stdnt2. Các biến đều có kiểu là STUDENT. Chúng ta biết rằng mỗi biến này bao gồm 2 trường nhưng chúng ta vẫn chưa biết cách truy cập chúng. Ngôn ngữ C ++ đã cung cấp một toán tử lập chỉ mục chuyên biệt [] cho các mảng, và nó cũng cho ta một cái gọi là toán tử lựa chọn được thiết kế cho các struct và được ký hiệu là một ký tự đơn “.” (chấm). Mức độ ưu tiên của toán tử lựa chọn là rất cao, tương đương với mức ưu tiên của toán tử [].

Đó là một toán tử 2 ngôi, đối số bên trái là biến kiểu struct, còn đối số bên phải là tên của một trường ở trong struct đó.  Ví dụ, chúng ta truy cập đến trường time của một biến kiểu STUDENT như sau →

Chúng ta có thể tổng hợp các struct thành một mảng, vì vậy để giải quyết bài toán ban đầu đặt ra chúng ta sẽ khai báo một mảng các STUDENT theo cách này →

Trong trường hợp này, muốn truy cập vào các trường bên trong struct cần 2 thao tác sau:

  • Bước 1: Sử dụng toán tử “[]” để truy cập vào struct mà chúng ta cần
  • Bước 2: Sử dụng toán tử lựa chọn “.” để chọn trường mong muốn

Có nghĩa là nếu chúng ta muốn chọn trường time của phần tử thứ 4 của mảng stdnts, chúng ta sẽ viết nó như sau:

Bây giờ chúng ta tập hợp tất cả các phép gán được thực hiện riêng cho 2 mảng riêng biệt lúc đầu (khi không sử dụng struct).  Hãy quan sát thật kỹ nhé →