Giào trình Lập trình C - Chương 7: Struct

Khái niệm về Struct

 Khai báo struct

 Truy nhập các trường trong struct

 Phép gán giữa biến kiểu struct

 Con trỏ và struct

pdf4 trang | Chia sẻ: hienduc166 | Lượt xem: 505 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giào trình Lập trình C - Chương 7: Struct, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
8/6/2010
1
7. Struct
Nội dung
 Khái niệm về Struct
 Khai báo struct
 Truy nhập các trường trong struct
 Phép gán giữa biến kiểu struct
 Con trỏ và struct
3. Cấu trúc
 Kiểu dữ liệu cấu trúc (struct) là kiểu dữ liệu phức hợp bao gồm 
nhiều thành phần, mỗi thành phần có thể thuộc những kiểu dữ 
liệu khác nhau.
Ví dụ: khi cần lưu giữ thông tin về 
một dạng đối tượng nào đó 
như đối tượng sinh viên chẳng hạn, 
ta lưu giữ các thông tin liên quan 
đến sinh viên như họ tên, tuổi, 
kết quả học tập
3.struct
Khai báo kiểu dữ liệu cấu trúc:
 Để khai báo một kiểu dữ liệu cấu trúc ta dùng cú pháp khai báo 
sau:
struct tên_cấu_trúc
{
;
};
8/6/2010
2
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
Khai báo biến cấu trúc:
 Để khai báo biến cấu trúc ta dùng cú pháp khai báo sau
tên_cấu_trúc     tên_biến_cấu_trúc;
Ví dụ:
sinh_vien a, b, c;
Câu lệnh trên khai báo 3 biến lần lượt tên là a, b, c có kiểu dữ liệu là 
cấu trúc sinh_vien.
Xử lí dữ liệu cấu trúc
Truy nhập các trường dữ liệu của cấu trúc :
 Dữ liệu của một biến cấu trúc bao gồm nhiều trường dữ 
liệu, và các trường này độc lập với nhau. 
 Muốn thay đổi nội dung dữ liệu bên trong một biến cấu trúc 
ta cần truy nhập tới từng trường và thực hiện thao tác cần 
thiết trên từng trường đó.
tên_biến_cấu_trúc.tên_trường
 Giờ đây ta có thể “đối xử” tên_biến_cấu_trúc.tên_trường
giống như một biến thông thường,
3.Struct
struct sinhvien
{
char  masoSV[10]; 
char  hoten[30];  
float diem;
};
int main()
{
sinhvien a;
strcpy(a.masoSV,ʺBK2456ʺ);
strcpy(a.hoten,ʺNguyen Van Aʺ);
a.diem=7.6;
printf(ʺTen : %s     MasoSV: % s  Diem: %0.2f \nʺ,a.hoten, a. masoSV, a.diem);
return 0;
}
8/6/2010
3
3.Struct
Phép gán giữa các biến cấu trúc
 Phép gán cấu trúc có cú pháp tương tự như phép gán thông 
thường
biến_cấu_trúc_1 = biến_cấu_trúc_2;
 Câu lệnh trên sẽ gán giá trị của các trường trong 
biến_cấu_trúc_2 cho các trường tương ứng trong 
biến_cấu_trúc_1.
3.Struct
Con trỏ cấu trúc
 Để khai báo một biến con trỏ cấu trúc ta dùng cú pháp khai 
báo
 * ;
 Có 2 cách truy nhập vào trường dữ liệu của cấu trúc từ biến 
con trỏ cấu trúc là
(*).
‐>
3.struct
sinhvien a,b,*c;
strcpy(a.masoSV,ʺBK2456ʺ);
strcpy(a.hoten,ʺNguyen Van Aʺ);
a.diem=7.6;
printf(ʺTen : %s     MasoSV: % s  Diem: %0.2f \nʺ,a.hoten, a.masoSV, a.diem);
b=a;
printf(ʺTen : %s     MasoSV: % s  Diem: %0.2f \nʺ,b.hoten, b.masoSV, b.diem);
c=(sinhvien*)malloc(sizeof(sinhvien));
*c = b;
printf(ʺTen : %s     MasoSV: % s  Diem: %0.2f \nʺ,c‐>hoten, c‐>masoSV, c‐>diem);
3.struct
Mảng cấu trúc : mỗi phần tử của mảng là một cấu trúc.
int main()
{
sinhvien a[5];
int i;
for(i=0; i<5; i++)
{
printf(ʺNhap sinh vien thu %d \nʺ,i+1);
printf(ʺMa SV: ʺ);   scanf(ʺ%sʺ,a[i].masoSV);        fflush(stdin);
printf(ʺHo ten: ʺ);   gets(a[i].hoten);
printf(ʺDiem: ʺ);   scanf(ʺ%fʺ,&a[i].diem);      
}
for(i=0; i<5; i++)
printf(ʺTen: %s  MaSV: %s diem: %0.2f\nʺ,a[i].hoten,a[i].masoSV,a[i].diem);
return 0;
}
8/6/2010
4
Bài tập
 Bài 1 : Định nghĩa cấu trúc sinh viên (mã sinh viên, họ tên, lớp, 
điểm trung bình), nhập và in ra danh sách lớp theo cấu trúc sinh 
viên đó. 
 Tìm và in ra màn hình thông tin về sinh viên có tên là xâu ký 
tự người dùng nhập vào từ bàn phím. 
 Tìm và in ra màn hình những sinh viên có điểm trung bình 
lớn hơn 5. 

File đính kèm:

  • pdfchapter7.Struct.pdf
  • pdfExamples.Chapter7.pdf
Bài giảng liên quan