1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình c c++chuong 7 compatibility mode

21 159 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

CHỈÅNG CÁÚU TRỤC Cáúu trục l táûp håüp ca mäüt hồû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 nháút cho tiãûn xỉí l (Giäúng cáúu trục Record Pascal) Cáúu trục giụp cho viãûc täø chỉïc cạc dỉỵ liãûu phỉïc tảp, âàûc biãût nhỉỵng chỉång trçnh låïn vç nhiãưu tçnh húng chụng cho phpẹ nhọm cạc biãún cọ liãn quan lải âãø xỉí l mäüt âån vë thay vç cạc thỉûc thãø tạch biãût I Âënh nghéa cáúu trục v khai bạo biãún cáúu trục Âënh nghéa cáúu trục struct { ; ; } Trong âọ: struct: L tỉì khoạ Tãn_kiãøu_cáúu_trục: l tãn báút k, ngỉåìi sỉí dủng âàût Vê dủ: struct Date { int day; int month; int year; }; Âënh nghéa cáúu trục bàòng typedef 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ãø cng typedef âã âënh nghéa sau: Typedef struct < tãn_kiãøu_cáúu_trục> ; Vê dủ: typedef struct Date DATE; Nãúu mäüt cáúu trục chỉa âënh nghéa, thç ta cọ thãø dng typedef âãø âënh nghéa: Typedef struct [Tãn_kiãøu_cáúu_trục] { ; ; } ; Vê dủ: Våïi vê dủ trãn ta cọ thãø dng typedef âãø âënh nghéa lải sau: typedef struct { int day; int month; int year; } DATE; Khai bạo biãún cáúu trục Khai bạo kãút håüp: struct { ; ; } ; Vê dủ: struct Date { int day; int month; int year; } date, *pd; Khai bạo riãng l: Dng Tãn_kiãøu_bn_ghi hồûc thäng qua tãn cáúu trục â âỉåüc âënh nghéa bàòng typedef + Dng tãn_kiãøu_cáúu_trục: struct < tãn_kiãøu_cáúu_trục> II Vê dủ: struct Date date,*pd; + Dng tãn âënh nghéa bàòng typedef Vê dủ: DATE date,*pd Khåíi âáưu giạ trë cho cáúu trục: Ta cọ thãø khåíi âáưu giạ trë cho mäüt cáúu trục theo phỉång cạch l khåíi âáưu giạ trë cho mng 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 âàût cạc dáúu mọc {} Cạc giạ trë khåíi âáưu cọ cng kiãøu våïi Vê dủ: DATE date = {12, 3, 2003} III Truy cáûp âãún cạc thnh pháưn ca cáúu trục: Cọ hai cạch tham chiãúu âãún cạc thnh pháưn ca cáúu trục tỉång ỉïng våïi hai trỉåìng håüp sau: Nãúu l mäüt biãún cáúu trục: Ta dng toạn tỉí dáúu cháúm (.) âãø tham chiãúu âãún cạc trỉåìng (thnh pháưn) ca cáúu trục Cụ phạp: Nãúu l mäüt biãún tr tr âãún cáúu trục: Ta dng toạn tỉí mi tãn (->) âãø tham chiãúu âãún Cụ phạp: > Vê dủ: struct Date { int day; int month; int year; } date; Våïi cạc khai bạo trãn ta cọ cạc cạch tham chiãúu sau: date.day=18; date.month=4; date.year=2003; Hồûc: p->day = 18 p->month=4; p->year=2003; Cạc phẹp toạn tr tỉång âỉång våïi: (*p).day=18; (*p).month=4; (*p).year=2003; Gạn hai biãún cáúu trục cho nhau(cng kiãøu cáúu trục) Vê dủ: struct Date d={18,4,2003}; struct Date today; today=d; Cọ thãø láúy âëa chè cạc trỉåìng ca cáúu trục, kãút qu l tr tr âãún thnh pháưn tỉång ỉïng Vê dủ: scanf(“%2d - %2d %4d”, &today.day, &today.month, &today.year); IV Mng cạc cáúu trục Vç cáúu trục l khäúi âäúi tỉåüng dỉỵ liãûu, âọ hon ton cọ kh nàng tảo mäüt mng cạc cáúu trục Khai bạo mng cạc cáúu truc sau: struct []; Hồûc l dng tãn â âỉåüc khai bạo båíi typedef: []; Vê dủ: Khai bạo mng cáúu trục: struct Date aa[10]; DATE ab[10]; Lục âọ âãø tham chiãúu âãún cạc trỉåìng ta cọ thãø dng sau: V Cáúu trục läưng Mäüt cáúu trục âỉåüc gi l läưng nãúu cọ mäüt cạc trỉåìng ca cáúu trục ny lải cọ kiãøu cáúu trục Cáúu trục läưng thỉåìng âỉåüc dng phäø biãún láûp trçnh C båíi vç cho phẹp tảo cạc dỉỵ liãûu cọ thỉï báûc Vi dủ: Tảo cáúu trục âãø lỉu thäng tin ngy sinh ca mäüt ngỉåìi typedef struct { char name[30]; struct { int day; int month; int year; } birth_day; } BDATE; Hồûc: typedef struct { char name[30]; struct Date birth_day; } BDATE; Hồûc typedef { char name[30]; DATE birth_day; }BDATE; Tham chiãúu âãún cạc thnh pháưn ca cáúu trục läưng thç hon ton giäúng våïi viãûc tham chiãúu cáúu trục khäng läưng nhau, chè cọ nhỉỵng trỉåìng chỉïa cáúu trục thç phi thãm tãn biãún cáúu trục âọ vo Vê dủ Våïi cáúu trục vỉìa âënh nghéa åí vê dủ trãn, ta tham chiãúu âãún cạc thnh pháưn ca biãún ngaysinh cọ kiãøu BDATE l: Tãn: ngaysinh.name=“Tran Van A”; Ngy sinh: ngaysinh.birth_day.day=19; ngaysinh.birth_day.month=04; ngaysinh.birth_day.year=2003; Vãư màût l thuút thç khäng cọ báút k mäüt giåïi hản no vãư säú mỉïc läưng ca cáúu trục Nhỉng lục âọ cạc tham chiãúu âãún cạc trỉåìng s cng tråí nãn phục tảp v khọ âc hån Cáúu trục tỉû tham chiãúu: Cạc cáúu trục gi l tỉû tham chiãúu nãúu chỉïa mäüt trỉåìng l tr tr âãún chênh Vê dủ: struct a { int a,b; float c; struct a *ptoa; Tênh tham chiãúu trỉåïc (Forward Referencing) Tênh cháút ny cho phẹp ta âỉa cạc khai bạo cạc tr tr âãún cạc cáúu trục chỉa âỉåüc âënh nghéa, âàûc ny cng cho phẹp ta tảo sỉû tỉû tham chiãúu â âãư cáûp åí trãn Ta cọ thãø tảo cáúu trục sỉû tham chiãúu láùn Vê dủ: struct s1 { int a; struct s2 *b; struct s2 { int a; struct s1 *b; }; Âàûc ny khäng ạp dủng cạc khai bạo bàòng typedef VI Truưn cáúu trục cho hm Cọ hai cạch truưn cáúu trục cho hm: - Truưn theo biãún cáúu trục (gi l truưn theo giạ trë) - Truưn tr tr âãún cáúu trục (gi l truưn theo tham chiãúu) Vê dủ: DATE d; func (d); /* Âënh nghéa hm func(DATE d) */ func(&d);/* Âënh nghéa hm func (DATE *d)*/ Truưn theo âëa chè ln nhanh hån båíi vç chè l mäüt tr âån gin âỉåüc chẹp âãún vng âäúi säú Màût khạc, truưn theo giạ trë s âi hi ton bäü cạc cáúu Cáúu trục nh (tỉïc l kêch thỉåïc cåỵ xáúp xè våïi mäüt tr) Mún bo âm ràòng låìi gi hm s khäng lm thay âäøi cáúu trục âỉåüc truưn vo (Khi mäüt âäúi säú truưn theo giạ trë, trçnh biãn dëch s tảo mäüt bn ca âäúi säú âọ Hm âỉåüc gi chè cọ thãø thay âäøi trãn bn m thäi) ... âỉå c âàût c c dáúu m c {} C c giạ trë khåíi âáưu c cng kiãøu våïi Vê dủ: DATE date = {12, 3, 2003} III Truy c ûp âãún c c thnh pháưn ca c úu tr c: C hai c ch tham chiãúu âãún c c thnh pháưn ca... khäng c báút k mäüt giåïi hản no vãư säú mỉ c läưng ca c úu tr c Nhỉng l c âọ c c tham chiãúu âãún c c trỉåìng s cng tråí nãn ph c tảp v khọ c hån C úu tr c tỉû tham chiãúu: C c cáúu tr c gi... struct Date aa[10]; DATE ab[10]; L c âọ âãø tham chiãúu âãún c c trỉåìng ta c thãø dng sau: V C úu tr c läưng Mäüt c úu tr c âỉå c gi l läưng nãúu c mäüt c c trỉåìng ca c úu tr c ny lải c kiãøu

Ngày đăng: 21/09/2017, 16:27

w