Danh mục

Bài giảng Ngôn ngữ lập trình C - Chương 7: Cấu trúc

Số trang: 21      Loại file: ppt      Dung lượng: 313.50 KB      Lượt xem: 15      Lượt tải: 0    
10.10.2023

Phí tải xuống: 10,000 VND Tải xuống file đầy đủ (21 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Cấu trúc là tập hợp của một hoặc nhiều biến, có thể khác kiểu nhau, được nhóm lại dưới dạng một tên duy nhất cho tiện xử lý. (Giống cấu trúc Record trong Pascal). Mời các bạn cùng tham khảo "Bài giảng Ngôn ngữ lập trình C - Chương 7: Cấu trúc" để nắm bắt được những nội dung chi tiết trong bài.
Nội dung trích xuất từ tài liệu:
Bài giảng Ngôn ngữ lập trình C - Chương 7: Cấu trúc CHƯƠNG7 CẤUTRÚC Cấu trúc là tập hợp của một hoặc nhiềubiến,cóthểkháckiểunhau, đượcnhómlạidướidạngmộttênduynhấtchotiệnxửlý.(GiốngcấutrúcRecordtrongPascal). Cấu trúc giúp cho việc tổ chức các dữ liệuphứctạp,đặcbiệttrongnhữngchươngtrìnhlớnvìtrong nhiều tình huống chúng cho phpé nhóm cácbiếncóliênquanlại đểxửlýnhưmộtđơnvịthayvìnhưcácthựcthểtáchbiệt.I. Địnhnghĩacấutrúcvàkhaibáobiếncấutrúc1. Địnhnghĩacấutrúc struct{ ; ; ... } Trongđó:struct:Làtừkhoá Tên_kiểu_cấu_trúc:làtênbấtkỳ,dongườisử dụngđặtVídụ: structDate{ intday; intmonth; intyear; };2. Địnhnghĩacấutrúcbằngtypedef Nếu một cấu trúc được định nghĩa với tên_kiểu_cấu_trúc thì ta có thể cùng typedef đê địnhnghĩanhưsau: Typedefstruct ;Vídụ: typedefstructDateDATE; Nếumộtcấutrúcchưađịnhnghĩa,thìtacóthể dùngtypedefđểđịnhnghĩa: Typedefstruct[Tên_kiểu_cấu_trúc]{ ; ; ... }; Vídụ: Vớivídụtrêntacóthểdùngtypedefđểđịnhnghĩa lạinhưsau: typedefstruct{ intday; intmonth; intyear; }DATE;3. Khaibáobiếncấutrúc Khaibáokếthợp: struct{ ; ; ... };Vídụ: structDate{ intday; intmonth; intyear; }date,*pd;Khaibáoriênglẽ: Dùng Tên_kiểu_bản_ghi hoặc thông qua têncấutrúcđãđượcđịnhnghĩabằngtypedef+ Dùngtên_kiểu_cấu_trúc:struct Vídụ: structDatedate,*pd; + Dùngtênđịnhnghĩabằngtypedef Vídụ: DATEdate,*pdII. Khởiđầugiátrịchocấutrúc: Tacóthểkhởiđầugiátrịchomộtcấutrúctheo phươngcáchnhưlàkhởi đầugiátrịchomảng. Theo sau tên_biến_cấu_trúc là dấu bằng (=), sau đó là danh dách các giá trị khởi đầu được đặttrongcácdấumóc{}.Cácgiátrịkhởi đầu có cùng kiểu với các trường tương ứng trong cấutrúc. Vídụ: DATEdate={12,3,2003}III. Truycậpđếncácthànhphầncủacấutrúc: Cóhaicáchthamchiếu đếncácthànhphầncủa cấutrúctươngứngvớihaitrườnghợpsau: Nếunólàmộtbiếncấutrúc: Ta dùng toán tử dấu chấm (.) để tham chiếu đếncáctrường(thànhphần)củacấutrúc. Cúpháp: . Nếu nó là một biến con trỏ trỏ đến cấu trúc:Tadùngtoántửmũitên(>)đểthamchiếuđến.Cúpháp: >Vídụ: structDate{ intday; intmonth; intyear; }date; typedefstructDateDATEVới các khai báo trên ta có các cách tham chiếusau: date.day=18; date.month=4; date.year=2003;Hoặc: p>day=18 p>month=4; p>year=2003;Cácphéptoáncontrỏtươngđươngvới: (*p).day=18; (*p).month=4; (*p).year=2003;Gán hai biến cấu trúc cho nhau(cùng kiểu cấutrúc)Vídụ: structDated={18,4,2003}; structDatetoday; today=d;Có thể lấy địa chỉ các trường của cấu trúc, kếtquảlàcontrỏtrỏđếnthànhphầntươngứng.Vídụ: scanf(“%2d%2d%4d”,&today.day, &today.month,&today.year);IV. Mảngcáccấutrúc Vìcấutrúclàkhối đốitượngdữliệu,do đóhoàntoàn có khả năng tạo ra một mảng các cấu trúc. Khai báo mảngcáccấutrucnhưsau: struct[]; Hoặclàdùngtênđãđượckhaibáobởitypedef: []; Vídụ: Khaibáomảngcấutrúc: structDateaa[10]; DATEab[10]; Lúcđóđểthamchiếu đếncáctrườngtacóthểdùngnhư sau: aa[2].month=4;V. Cấutrúclồngnhau Mộtcấutrúcđượcgọilàlồngnhaunếucómột trong các trường của cấu trúc này lại có kiểu cấutrúc.Cấutrúclồngnhauthường đượcdùng phổ biến trong lập trình C bởi vì nó cho phép tạoracácdữliệucóthứbậc. Vidụ:Tạocấutrúc đểlưuthôngtinngàysinh củamộtngười.typedefstruct { charname[30]; struct { intday; intmonth; intyear; }birth_day; }BDATE;Hoặc: typedefstruct { charname[30]; structDatebirth_day; }BDATE;Hoặc typedef { charname[30]; DATEbirth_day; }BDATE; Thamchiếu đếncácthànhphầncủacấutrúclồngnhau thì hoàn toàn giống với việc tham chiếu trongcấu ...

Tài liệu được xem nhiều: