Bài giảng Lập trình căn bản - Phần 1, Chương 9: Kiểu cấu trúc

Nội dung chương này

Kiểu cấu trúc trong C

Các thao tác trên biến kiểu cấu trúc

Con trỏ và cấu trúc

 

ppt 20 trang phuongnguyen 5920
Bạn đang xem tài liệu "Bài giảng Lập trình căn bản - Phần 1, Chương 9: Kiểu cấu trúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình căn bản - Phần 1, Chương 9: Kiểu cấu trúc

Bài giảng Lập trình căn bản - Phần 1, Chương 9: Kiểu cấu trúc
LẬP TRÌNH CĂN BẢN 
Phần 2 - Chương 9 
KIỂU CẤU TRÚC 
N .C. Danh 
1 
Nội dung chương này 
Kiểu cấu trúc trong C 
Các thao tác trên biến kiểu cấu trúc 
Con trỏ và cấu trúc 
2 
Kiểu cấu trúc trong C 
Khái niệm 
Định nghĩa kiểu cấu trúc 
Khai báo biến cấu trúc 
3 
Khái niệm 
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) 
Nó khác với kiểu mảng (nơi mà các phần tử có cùng kiểu) 
Ví dụ: 
1 struct: 
1 mảng: 
4 
Định nghĩa kiểu cấu trúc +Khai báo biến cấu trúc (1) 
Cách 1: 	 	 	 
struc t SinhVien { 
	 char MSSV[10]; 
	 char HoTen[40]; 
	 struct NgayThang NgaySinh; 
	 int Phai; 
	 char DiaChi[40]; 
} ; 
Khaibáo biến : 
 struct NgayThang NgaySinh; 
 struct SinhVien SV; 
struct { 
	 ; 
	 ; 
	.. 
	 ; 
	 } [biến 1, biến 2]; 
Ví dụ : 
struct NgayThang { 
 unsigned char Ngay; 
 unsigned char Thang; 
 unsigned int Nam; 
} ; 
struct tên_biến; 
5 
Định nghĩa kiểu cấu trúc +Khai báo biến cấu trúc (2) 
Chú ý: 
struct không tên: 
Tuy nhiên 
A và B là các struct có 2 thành phần x và y. 
struct này không có tên , nên ngoài A và B, ta không thể định nghĩa thêm các biến khác được. 
A và B là các biến có kiểu struct point. 
Sau này ta có thể khai báo thêm các biến khác có kiểu struct point này. 
6 
Định nghĩa kiểu cấu trúc +Khai báo biến cấu trúc (3) 
Cách 2: 	 	 	 
typedef struct { 
	 char MSSV[10]; 
	 char HoTen[40]; 
	NgayThang NgaySinh; 
	int Phai; 
	 char DiaChi[40];	 
} SinhVien; 
Khai báo biến : 
 NgayThang NgaySinh; 
 SinhVien SV; 
typedef struct { 
 	; 
 	; 
 .. 
 	; 
} ; 
Ví dụ : 
typedef struct { 
 unsigned char Ngay; 
 unsigned char Thang; 
 unsigned int Nam; 
} NgayThang ; 
 tên_biến; 
7 
Các thao tác trên biến kiểu cấu trúc 
Truy xuất đến từng trường của biến cấu trúc 
Khởi tạo cấu trúc 
8 
Truy xuất đến từng trường (field) của biến cấu trúc (1) 
Cú pháp : . 
Ví dụ 1: Chương trình cho phép đọc dữ liệu từ bàn phím cho biến mẩu tin SinhVien và in biến mẩu tin đó lên màn hình: 
9 
Truy xuất đến từng trường (field) của biến cấu trúc (2) 
10 
Truy xuất đến từng trường (field) của biến cấu trúc (3) 
Kết quả của 1 lần nhập: 
11 
Truy xuất đến từng trường (field) của biến cấu trúc (4) 
Lưu ý : 
Các biến cấu trúc có thể gán cho nhau 
Ví dụ: 
	s=SV; // gán để lấy giá trị toàn bộ cấu trúc 
Ta không thể thực hiện được các thao tác sau đây cho biến cấu trúc: 
Sử dụng các hàm xuất nhập trên biến cấu trúc 
Các phép toán quan hệ, các phép toán số học và logic 
12 
Khởi tạo cấu trúc 
Biến cấu trúc có thể được khởi tạo giá trị ban đầu lúc khai báo 
Ví dụ: 
	 struct NgayThang NgaySinh ={29, 8, 1986}; 
13 
Con trỏ và cấu trúc 
Khai báo 
Sử dụng các con trỏ kiểu cấu trúc 
Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ 
14 
Khai báo (1) 
Cú pháp: 
	 struct * ; 
Ví dụ 1: 
	 struct NgayThang *p; 
	 hoặc 
	 NgayThang *p; 	 // Nếu có dùng typedef 
15 
Khai báo (2) 
Ví dụ 2: 
Truy cập đến các trường: 
Nếu dùng con trỏ thì: 
16 
Sử dụng các con trỏ kiểu cấu trúc 
Có 2 cách: 
Phải cấp phát bộ nhớ cho nó 
Cho nó chỉ vào (chứa địa chỉ) biến đang tồn tại 
Ví dụ: 
	struct NgayThang *p; 
	p=( struct NgayThang *) malloc (sizeof( struct NgayThang)); 
	p->Ngay=29; p->Thang=8; p->Nam=1986; 
Hoặc 
	 struct NgayThang Ngay = {29,8,1986}; 
	p = &Ngay; 
17 
Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ (1) 
Với khai báo sau: 
	struct NgayThang *p; 
Ta có thể truy cập đến các trường của nó như sau: 
	 p->Ngay p->Thang 
	hoặc 
	 (*p).Ngay (*p).Thang 
18 
Truy cập các thành phần của cấu trúc đang được quản lý bởi con trỏ (3) 
Ví dụ 
19 
Hết chương 
20 

File đính kèm:

  • pptbai_giang_lap_trinh_can_ban_phan_1_chuong_9_kieu_cau_truc.ppt