intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

LẬP TRÌNH CĂN BẢN - KIỂU CẤU TRÚC

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:5

86
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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)

Chủ đề:
Lưu

Nội dung Text: LẬP TRÌNH CĂN BẢN - KIỂU CẤU TRÚC

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

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
16=>1