
11/8/2010
1
7.Struct
Nộidung
KháiniệmvềStruct
Khaibáostruct
Truynhậpcáctrườngtrongstruct
Phépgángiữabiếnkiểustruct
Contrỏvàstruct

11/8/2010
2
3.Cấutrúc
Kiểudữliệucấutrúc (struct)làkiểudữliệuphứchợpbao
gồmnhiềuthànhphần,mỗithànhphầncóthểthuộcnhững
kiểudữliệukhácnhau.
Vídụ:khicầnlưugiữthôngtinvề
mộtdạngđốitượngnàođó
nhưđốitượngsinhviênchẳnghạn,
talưugiữcácthôngtinliênquan
đếnsinhviênnhưhọtên,tuổi,
kếtquảhọctập…
3.struct
Khaibáokiểudữliệucấutrúc:
Đểkhaibáomộtkiểudữliệucấutrúctadùngcúphápkhaibáo
sau:
struct tên_cấu_trúc
{
<khaibáocáctrườngdữliệu>;
};

11/8/2010
3
3.struct
struct sinh_vien
{
char masoSV[10];
char hoten[30];
float diem_TinDC;
};
struct point_3D
{
float x;
float y;
float z;
};
3.struct
Khaibáobiếncấutrúc:
Đểkhaibáobiếncấutrúctadùngcúphápkhaibáosau
struct tên_cấu_trúctên_biến_cấu_trúc;
Vídụ:
struct sinh_viensv1,sv2;
struct point_3Dpoint1,point2;
Câulệnhtrênkhaibáo2biếnlầnlượttênlàsv1,sv2cókiểu
dữliệulàcấutrúcsinh_vien.

11/8/2010
4
3.struct
Khaibáodùngtừkhóatypedef
typedef struct point_3D
{
float x;
float y;
float z;
}POINT;
KhikhaibáobiếnchỉcầndùngPOINT
POINTx,y;(thayvìstruct point_3Dx,y;)
Xửlídữliệucấutrúc
Truynhậpcáctrườngdữliệucủacấutrúc :
Dữliệucủamộtbiếncấutrúcbaogồmnhiềutrườngdữliệu,và
cáctrườngnàyđộclậpvớinhau.
Muốnthayđổinộidungdữliệubêntrongmộtbiếncấutrúcta
cầntruynhậptớitừngtrườngvàthựchiệnthaotáccầnthiết
trêntừngtrườngđó.
tên_biến_cấu_trúc.tên_trường
Giờđâytacóthể“đốixử”tên_biến_cấu_trúc.tên_trường giống
nhưmộtbiếnthôngthường,

11/8/2010
5
struct sinhvien
{
char masoSV[10];
char hoten[30];
float diem;
};
int main(void)
{
struct sinhviena;
strcpy(a.masoSV,"BK2456");
strcpy(a.hoten,"NguyenVanA");
a.diem=7.6;
printf("Ten:%sMasoSV:%sDiem:%0.2f\n",a.hoten,
a.masoSV,a.diem);
return 0;
}
3.Struct
Phépgángiữacácbiếncấutrúc
Phépgáncấutrúccócúpháptươngtựnhưphépgánthông
thường
biến_cấu_trúc_1=biến_cấu_trúc_2;
Câulệnhtrênsẽgángiátrịcủacáctrườngtrong
biến_cấu_trúc_2 chocáctrườngtươngứngtrong
biến_cấu_trúc_1.