Danh mục

Bài giảng cơ sở lập trình - Trường học viên Ngân Hàng Hà Nội - Chương 8

Số trang: 28      Loại file: pptx      Dung lượng: 204.28 KB      Lượt xem: 14      Lượt tải: 0    
Hoai.2512

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Kiểu cấu trúc (struct): Là kiểu dữ liệu bao gồm nhiều thành phần có kiểu khác nhau, mỗi thành phần được gọi là một trường (field). Khai báo biến kiểu cấu trúc: Khai báo tương tự như khai báo biến thuộc kiểu dữ liệu chuẩn. Với cách khai báo cấu trúc trực tiếp, có thể khai báo biến ngay khi khai báo cấu trúc
Nội dung trích xuất từ tài liệu:
Bài giảng cơ sở lập trình - Trường học viên Ngân Hàng Hà Nội - Chương 8 Chương 8KIỂU DỮ LIỆU CẤU TRÚC (structure)Khoa Hệ thống thông tin quản lý Hà Nội – 2013Nội dung 1 Khái niệm kiểu cấu trúc (struct) 2 Các thao tác với cấu trúc 3 Mảng cấu trúc 4 Con trỏ cấu trúc 5 Chuyển tham số struct cho hàm 6 Union11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 21. Khái niệm kiểu cấu trúc o Kiểu cấu trúc (struct) n Là kiểu dữ liệu bao gồm nhiều thành phần có kiểu khác nhau, mỗi thành phần được gọi là một trường (field) n Kiểu cấu trúc và mảng: o Các phần tử của mảng là cùng kiểu o Các phần tử của cấu trúc có thể có kiểu khác nhau n Struct được dùng để định nghĩa các kiểu dữ liệu mớ i11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 3/28Khai báo cấu trúc o Khai báo trực tiếp struct { ; … ; } , ; o Ví dụ n Khai báo cấu trúc NgayThang gồm 3 trường: ngày, tháng, năm struct NgayThang { unsigned char Ngay; unsigned char Thang; unsigned int Nam; } date1,date2;11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 4/28Khai báo cấu trúc (tt) o Khai báo gián tiếp typedef struct { ; … ; } ; o Ví dụ n Khai báo kiểu cấu trúc NgayThang gồm 3 trường: ngày, tháng, năm typedef struct { unsigned char Ngay; unsigned char Thang; unsigned int Nam; } NgayThang;11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 5/28Khai báo cấu trúc lồng nhau o Ví dụ: n Khai báo cấu trúc SinhVien gồm: mã sinh viên, họ tên, ngày sinh (thuộc kiểu ngaythang ở trên), giới tính, địa chỉ Khai báo trực tiếp Khai báo gián tiếp struct SinhVien typedef struct { { char Masv[10]; char Masv[10]; char Hoten[40]; char Hoten[40]; NgayThang NgaySinh; NgayThang NgaySinh; int Gioitinh; int Gioitinh; char Diachi[50]; char Diachi[50]; }; } SinhVien;11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 6/28Khai báo biến kiểu cấu trúc o Khai báo biến kiểu cấu trúc n Khai báo tương tự như khai báo biến thuộc kiểu dữ liệu chuẩn n Với cách khai báo cấu trúc trực tiếp, có thể khai báo biến ngay khi khai báo cấu trúc n Ví dụ 1: Khai báo biến A và B struct Diem { float x; float y; } A,B; n Ví dụ 2: Khai báo biến SV1,SV2 có kiểu SinhVien SinhVien SV1,SV2;11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 7/282. Các thao tác với cấu trúc o Khởi tạo cấu trúc Biến cấu trúc có thể được khởi tạo giá trị trong n lúc khai báo. n Các trường của cấu trúc được đặt giữa cặp dấu { và }, ngăn cách bằng dấu phẩy (,) n Ví dụ: Khởi tạo biến cấu trúc ngaysinh struct NgayThang NgaySinh={01,08,1991}11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 8/28Truy cập vào phần tử struct o Đặc điểm n Không thể truy xuất trực tiếp n Thông qua toán tử thành phần cấu trúc . hay còn gọi là toán tử chấm (dot operation) o Cú pháp . o Ví dụ: n Viết ra toạ độ điểm A trong khai báo trên printf(“x = %f, y = %f”, A.x, A.y); o Chú ý: n Các biến cấu trúc có thể gán cho nhau, vd: B=A; n KHÔNG thực hiện được các hàm nhập xuất, các11/7/13 phép quan hệ, số u dữ liệlogic trúc biến c9/28 trúc Chương 8-Kiể học, u cấu trên ấuGán dữ liệu kiểu cấu trúc o Có 2 cách = ; . = ; o Ví dụ struct Diem { int x, y; } diem1 = {2912, 1706}, diem2; … diem2 = diem1; diem2.x = diem1.x; diem2.y = diem1.y * 2;11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 10/28Cấu trúc phức tạp o Cấu trúc đệ quy (tự trỏ) struct PERSON { char hoten[30]; struct PERSON *father, *mother; }; struct NODE { int value; struct NODE *pNext; }; n Sử dụng để tạo danh sách liên kết (đơn – LIFO, FIFO, kép, vòng)11/7/13 Chương 8-Kiểu dữ liệu cấu trúc 11/28Ví dụ - Nhập/in ...

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