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
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 ...
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ìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình C Bài giảng Ngôn ngữ lập trình C Định nghĩa cấu trúc Khai báo biến cấu trúc Cấu trúc lồng nhau Giá trị cho cấu trúcGợi ý tài liệu liên quan:
-
101 trang 200 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Thực hành ngôn ngữ lập trình C
6 trang 131 0 0 -
161 trang 130 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 116 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 112 0 0 -
Đồ án vi xử lý đề tài : nghiên cứu thiết kế mạch đo khoảng cách sử dụng vi điều khiển Pic 16F887
45 trang 97 1 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 2 - Quách Tuấn Ngọc
210 trang 89 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 67 0 0 -
ĐỀ CƯƠNG THI TRẮC NGHIỆM MÔN LẬP TRÌNH CÓ CẤU TRÚC
43 trang 67 0 0