Xin chào và chào mừng trở lại.
Thông tin thêm về cấu trúc, đặc biệt cấu trúc lồng nhau, cấu trúc cấu trúc lồng nhau bên trong cấu trúc.
Đó là những gì có nghĩa là.
Vì vậy, hãy xem, cho phép bạn xác định một cấu trúc mà chính nó chứa các cấu trúc khác như một hoặc nhiều thành
viên của nó.
Đó là một khái niệm khá gọn gàng ở đây.
Bạn có thể có cấu trúc bên trong cấu trúc.
Vì vậy, bạn đã thấy cách có thể nhóm hợp lý các tháng một ngày trong năm thành một cấu trúc gọi là
ngày.
Chúng tôi đã gắn bó với ví dụ này về ngày.
Vậy nếu chúng ta thực sự muốn nhóm thời gian, giờ, phút và giây thành một cấu trúc thì sao?
Điều đó có vẻ như điều đó cũng sẽ hữu ích.
Vì vậy, ở đây chúng ta sẽ có một cấu trúc được gọi là thời gian và nó rất giống ngày nay.
Nó chứa ba yếu tố.
Chúng ta biết tên của cấu trúc là thời gian vì nó theo sau từ khóa struct, đó là tên thẻ.
Và sau đó bên trong dấu ngoặc nhọn, chúng tôi xác định các phần tử của chúng tôi, kiểu dữ liệu của chúng tôi và tên của các biến của chúng tôi.
Và bây giờ chúng tôi biết rằng chúng tôi cũng có thể đặt một mảng vào đó nếu chúng tôi muốn.
Nhưng trong trường hợp này, chúng ta không cần một mảng, chúng ta chỉ cần ba số nguyên.
Chúng ta kết thúc cấu trúc bằng dấu ngoặc nhọn bên phải và dấu chấm phẩy.
Còn về thì sao?
Trong một số ứng dụng, bạn có thể muốn thực sự nhóm cả ngày trong thời gian lại với nhau.
Nó sẽ có ý nghĩa, phải không?
Bởi vì ngày và giờ được tổ chức hợp lý hoặc hợp lý với nhau, phải không?
Chúng được nhóm lại một cách hợp lý.
Vì vậy, bạn có thể thiết lập một danh sách các sự kiện sẽ xảy ra vào một ngày cụ thể trong thời gian.
Và vì vậy đây có thể là một trường hợp rất hữu ích khi bạn muốn sử dụng cấu trúc lồng nhau.
Vì vậy, bạn có một cách thuận tiện để kết hợp cả ngày và giờ với nhau.
Chúng ta có thể xác định một cấu trúc mới được gọi là ngày và giờ chẳng hạn.
Điều này sẽ chứa, như các thành viên của nó, hai yếu tố ngày và giờ, cả hai đều là cấu trúc.
Vì vậy, bây giờ chúng ta có một cấu trúc lồng nhau.
Chúng ta có một cấu trúc có tên ngày và giờ chứa hai cấu trúc khác.
Một cái gì đó như vậy trong cú pháp rất giống với việc tạo các cấu trúc khác.
Sự khác biệt duy nhất ở đây là bên trong cấu trúc thực tế là tên phần tử.
Bạn có từ khóa struct, tên của struct và sau đó là tên biến.
Vì vậy, trong trường hợp này, chúng tôi đang tạo một cấu trúc ngày và giờ và chúng tôi có hai cấu trúc, một cấu trúc là loại ngày tháng,
một cấu trúc thuộc loại thời gian.
Hai biến trạng thái và S thời gian.
Thành viên đầu tiên của cấu trúc thuộc loại ngày tháng và nó được gọi là Ngày SE.
Thành phần thứ hai của cấu trúc ngày và giờ thuộc loại thời gian được đánh dấu và nó được gọi là se time.
Các biến hiện có thể được xác định là kiểu cấu trúc ngày và giờ.
Chúng ta không phải tạo các biến riêng biệt cho ngày tháng, các biến riêng biệt cho thời gian.
Chúng ta có thể tạo một cấu trúc và cấu trúc đó sẽ lưu trữ cả ngày tháng trong thời gian.
Chúng tôi sẽ làm điều đó giống như thế này.
Chúng tôi sẽ sử dụng một từ khóa mạnh, chỉ định loại cấu trúc, ngày giờ và sau đó là tên biến.
Trong trường hợp này, chúng sẽ lưu trữ các sự kiện.
Vì vậy, chúng tôi nói sự kiện khi chúng tôi muốn truy cập các bộ nhớ trong một cấu trúc lồng nhau.
Một lần nữa, cú pháp khá đơn giản.
Tất cả những gì bạn phải làm là tham khảo nó giống như bất kỳ thành viên nào khác.
Bạn phải sử dụng toán tử lựa chọn thành viên đó.
Vì vậy, sẽ sử dụng nó khá nhiều lần.
Vì vậy, nếu chúng ta có một cấu trúc có tên là sự kiện và chúng ta muốn lấy ngày, chúng ta nói ngày
sự kiện vì đó là một thành viên của cấu trúc ngày và giờ đó.
Bây giờ, nếu bạn muốn tham chiếu lại một thành viên cụ thể bên trong một trạng thái, bạn sẽ sử
dụng tệp dấu chấm theo tên số sẽ được gắn ở cuối.
Vì vậy, câu lệnh dưới đây sẽ đặt tháng của cấu trúc ngày có trong sự kiện thành tháng 10 và nó
sẽ thêm một vào số giây có trong cấu trúc thời gian.
Vì vậy, chúng tôi nói trạng thái sự kiện và sau đó là một dấu chấm khác vì chúng tôi muốn truy cập phần tử của biến trạng thái.
Chúng tôi muốn truy cập tháng và chúng tôi sẽ ấn định tháng thứ mười.
Vì vậy, có nhiều dấu chấm ở đó.
Và tất cả những gì điều này đang nói là bạn có một sự kiện có tên cấu trúc.
Và bởi vì chúng tôi đã khai báo trước đó, chúng tôi nói rằng đó là loại, ngày và giờ.
Bên trong đó, bạn có một cấu trúc, chỉ là một cấu trúc ngày mà bạn muốn truy cập của ngày đó, cấu
trúc thành viên tháng.
Vì vậy, bạn nói dot month với Dot's.
Và sau đó nếu chúng ta muốn thay đổi gia số thứ hai một, chúng ta chỉ
có thể nói cộng, cộng với chúng ta có thể sử dụng toán tử triển khai trước cộng với sự kiện cộng dưới dạng giây thời gian.
Chúng ta phải bao gồm hai dấu chấm đó và giây là một số nguyên, vì vậy bạn chỉ cần thêm một dấu chấm vào đó.
Rất thẳng thắn.
Biến sự kiện có thể được khởi tạo giống như các cấu trúc bình thường.
Nếu bạn muốn đặt ngày trong sự kiện biến thành ngày 4 tháng 2 năm 2015 và thời gian là 330, bạn sẽ nói sự
kiện ngày và giờ bắt đầu.
Bạn sẽ tạo nó giống như bình thường.
Và sau đó bạn sẽ có những dấu ngoặc nhọn đó để chỉ định các thành viên khởi tạo cấu trúc khác nhau.
Vì vậy, trên dấu ngoặc nhọn đầu tiên, chúng ta sẽ khởi tạo ngày tháng, chúng ta sẽ khởi
tạo từ tháng đến ngày hai tháng hai, dữ liệu một và năm 2015.
Và sau đó chúng ta kết thúc dấu ngoặc nhọn và đặt dấu phẩy sau dấu ngoặc nhọn đó.
Và sau đó là thứ hai, trông giống như một khởi tạo mảng đa chiều.
Chúng tôi nói rằng thời gian sẽ bằng 330 bằng không.
Vậy 3 giờ, 30 phút, 0 giây.
Bạn có thể sử dụng tên thành viên và cách khởi tạo giống như tất cả các quy tắc khởi tạo khác của chúng tôi.
Điều này sẽ có lợi vì bạn sẽ không phải chỉ định thứ tự.
Và ở đây chúng tôi chỉ tạo sự kiện.
Và sau đó bên trong dấu ngoặc nhọn, chúng ta sử dụng dấu chấm.
Nhà điều hành.
Chúng tôi nói tháng bằng hai ngày bằng một năm bằng 2015.
Và điều đó sẽ chỉ để xác định ngày khởi tạo.
Nếu chúng ta muốn chỉ định thời gian khởi tạo, chúng ta chỉ cần sử dụng lại các dấu chấm cho mỗi tên thành viên dấu chấm chấm
chấm phút và chúng ta có thể chuyển đổi thứ tự xung quanh.
Đúng?
Chúng ta có thể nói dấu chấm thứ hai, SQL 0/1 và sau đó phút bằng 30 và sau đó là ba chữ B cuối cùng của chúng ta.
Thứ tự không quan trọng.
Và sau đó chúng ta kết thúc nó bằng dấu chấm phẩy và dấu xoăn.
Phải, dấu ngoặc nhọn.
Bây giờ chúng ta biết chúng ta có thể có các cấu trúc lồng nhau, còn một mảng các cấu trúc lồng nhau thì sao?
Bây giờ chúng tôi đang thực sự tham gia vào nó.
Vâng, nó có thể.
Bạn có thể thiết lập một mảng cấu trúc ngày tháng, ngày giờ và ngày giờ chứa hai cấu trúc bên
trong nó.
Bạn cứ làm như một cú pháp bình thường khác.
Bạn phải sử dụng những dấu ngoặc để chỉ định kích thước của mảng.
Khi bạn khai báo tên cấu trúc thực, bạn phải chỉ định kiểu ngày giờ, giống như bất kỳ cấu trúc
nào khác.
Các sự kiện mảng được khai báo chứa 100 phần tử kiểu, cấu trúc, ngày và giờ.
Ngày và giờ thứ tư chứa trong mảng được tham chiếu bằng cách sử dụng chỉ số phụ thông thường ba hoặc chỉ số
ba hoặc chỉ số con ba bên trong các dấu ngoặc vuông đó.
Vì vậy, để đặt lần đầu tiên trong mảng thành buổi trưa, bạn sẽ nói sự kiện subzero chấm SW thời gian vì hãy nhớ
thời gian SW chỉ đến cấu trúc thời gian và sau đó bạn phải truy cập phần tử trong cấu trúc thời gian, đó là
giờ.
Vì vậy, bạn sử dụng một dấu chấm khác và bạn nói 12.
Nó trông rất giống với khai báo hoặc gán trước đây mà tôi nên nói, nhưng thay vào đó
nó có chỉ số mảng bằng không bên trong dấu ngoặc vuông.
Nếu các sự kiện không phải là một mảng và bạn chỉ muốn truy cập cấu trúc đơn lẻ hoặc cấu trúc giờ của
thời gian, bạn chỉ cần loại bỏ dấu ngoặc.
Vì vậy, các mảng không thực sự phức tạp bất cứ điều gì.
Bạn chỉ cần thực sự quen thuộc với các dấu ngoặc vuông đó và các chỉ mục.
Nơi đây.
Chúng tôi đang đặt số phút thành 0 sự kiện dưới 0.
Vì vậy, chúng tôi đang đặt yếu tố đầu tiên đó và sau đó chúng tôi đặt giây thành 0.
Bây giờ nếu chúng ta muốn khai báo một cấu trúc bên trong một cấu trúc.
Bạn có thể xác định cấu trúc ngày trong định nghĩa cấu trúc thời gian.
Vì vậy, đây là một phạm trù khác của tính linh hoạt.
Chúng ta không nhất thiết phải xác định cấu trúc ngày và giờ ở một nơi khác.
Chúng ta có thể xác định các cấu trúc đó ngay trong cấu trúc ngày và giờ của chúng ta.
Vì vậy, đây sẽ là một ví dụ về việc chỉ xác định cấu trúc ngày bên trong cấu trúc thời gian bên trong của chúng.
Vì vậy, ở đây chúng ta có một cấu trúc lồng nhau, nhưng chúng ta thực sự đã định nghĩa nó bên trong định nghĩa của cấu trúc thời gian.
Vì vậy, chúng ta nói struct time với tên thẻ và sau đó bên trong dấu ngoặc nhọn, chúng ta nói struct date.
Điều đó hoàn toàn hợp lệ.
Và bạn cũng sẽ nhận thấy rằng cuối ngày bắt đầu trước dấu chấm phẩy kết thúc, chúng tôi đang tạo
một biến gọi là DOB.
Và sau khi chúng tôi tạo ngày bắt đầu và các phần tử của nó trong một DOB biến, chúng tôi chỉ định các phần
tử của giờ bắt đầu thời gian, phút và giây.
Vì vậy, điều đó là hoàn toàn hợp lệ.
Bây giờ, bạn có thể nên nhận thấy hạn chế của ngày được đánh dấu này là sẽ chỉ được xác định
trong đó một lần với một tên biến DOB.
Bạn sẽ không thể sử dụng cấu trúc ngày tháng ở bất kỳ đâu ngoài cấu trúc này.
Trừ khi bạn sử dụng thời gian bên trong, bạn sẽ không thể sử dụng ngày của chính nó.
Vì vậy, phần khai báo của cấu trúc ngày nằm trong phạm vi của cấu trúc thời gian.
Phạm vi định nghĩa đề cập đến cách bạn có thể truy cập mọi thứ vì cấu trúc ngày nằm trong phạm vi thời gian.
Bạn không thể truy cập nó trừ khi bạn tạo một biến cấu trúc thời gian biến thời gian.
Bạn không thể chỉ nói struct date tên biến của tôi bởi vì bạn không có quyền truy cập vào đó.
Vì vậy, ngày không tồn tại bên ngoài cấu trúc thời gian.
Không thể khai báo một biến ngày bên ngoài cấu trúc thời gian.
Lần duy nhất bạn có thể sử dụng biến cấu trúc ngày là khi bạn tạo cấu trúc thời gian và nó
sẽ tự động tạo biến DLB cho bạn.
Vì vậy, điều này có phần hạn chế, nhưng bạn sẽ sử dụng điều này trong trường hợp bạn chỉ cần ngày khi nó được
liên kết với thời gian mà ngày không bao giờ được tự nó.
Sau đó, bạn sẽ làm điều đó theo cách này.
Vì vậy, một khái niệm đầu gối khác, một khái niệm cung cấp một cấu trúc bên trong của một cấu trúc rất, rất cơ bản.
Và cú pháp khá đơn giản.
Bạn sẽ dễ dàng làm quen với những điều này, thêm mảng vào một cấu trúc có chứa một cấu trúc.
Bạn chỉ cần sử dụng dấu ngoặc vuông trong chỉ mục.
Không có gì thực sự thay đổi ở đó.
Và sau đó bạn có thể thay đổi định dạng một chút.
Nếu bạn chỉ muốn một cấu trúc lồng nhau cục bộ, bạn có thể xác định nó ngay bên trong định nghĩa cấu trúc khác.
Vì vậy, chúng tôi thực sự trở thành chuyên gia ở đây với loại cấu trúc của chúng tôi.
Tôi muốn nói về một vài khái niệm cuối cùng, đặc biệt là tôi muốn chỉ cho bạn cách bạn có thể tạo con trỏ
bên trong một cấu trúc hữu ích.
Và sau đó chúng tôi sẽ thực hiện một số thử thách và bài tập và nó sẽ giúp bạn thực sự quen thuộc với
khái niệm cấu trúc này.
Cảm ơn bạn.