1. Trang chủ
  2. » Giáo án - Bài giảng

giáo trình C chương 7

33 364 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 7 Kiểu Dữ Liệu Cấu Trúc
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Lập trình C
Thể loại Giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 2,78 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 7 Kiểu dữ liệu cấu trúc Mục tiêu Tìm hiểu kiểu dữ liệu cấu trúc và công dụng Định nghĩa cấu trúc Khai báo các biến kiểu cấu trúc Cách truy cập vào các phần tử của cấu trúc Khởi tạo biến cấu trúc Sử dụng biến cấu trúc trong câu lệnh gán Cách truyền tham số cấu trúc Sử dụng mảng các cấu trúc Tìm hiểu cách khởi tạo mảng các cấu trúc . Con trỏ cấu trúc Cách truyền tham số kiểu con trỏ cấu trúc

Trang 1

Chương 7

Kiểu dữ liệu cấu trúc

Trang 2

Mục tiêu - 1

 Tìm hiểu kiểu dữ liệu cấu trúc và công dụng

 Định nghĩa cấu trúc

 Khai báo các biến kiểu cấu trúc

 Cách truy cập vào các phần tử của cấu trúc

 Khởi tạo biến cấu trúc

 Sử dụng biến cấu trúc trong câu lệnh gán

 Cách truyền tham số cấu trúc

Trang 5

Định Nghĩa Cấu Trúc

Một định định nghĩa cấu trúc:

 Tạo ra kiểu dữ liệu mới

 Cho phép sử dụng để khai báo các biến kiểu cấu trúc

Các biến trong cấu trúc được gọi là các phần tử của

cấu trúc hay thành phần của cấu trúc

Trang 6

Khai Báo Biến Cấu Trúc

 Khi một cấu trúc đã được định nghĩa, chúng ta có thể khai báo một hoặc nhiều biến kiểu này

Trang 7

 typedef không thể sử dụng với storage classes

Trang 8

Sử dụng từ kháo typedef trong định nghĩa cấu trúc

Trang 9

Các cấu trúc được định nghĩa với từ khóa typedef

 Không cần nhắc lại từ khóa struct khi khai báo biến

cấu trúc:

Từ Khóa typedef

typedef struct {

Trang 10

Khai Báo Biến Cấu Trúc

 Bài tập 1: Viết chương trình:

Định nghĩa cấu trúc Sach

 Khai báo các biến cấu trúc Sach

Trang 11

Truy Cập Phần Tử của Cấu Trúc

 Các phần tử của cấu trúc được truy cập thông qua

Trang 12

Khởi Tạo Cấu Trúc

 Các biến kiểu cấu trúc có thể được khởi tạo tại thời điểm khai báo

struct NhanVien {

int MaNV;

char TenNV [20];

};

Các biến nv1và nv2 có kiểu NhanVien có thể

được khai báo và khởi tạo như sau:

struct NhanVien nv1 = {100,“John”}; struct NhanVien nv2 = {101,“David”};

Trang 13

Khai Báo Biến Cấu Trúc

 Bài tập 2: Viết chương trình:

Định nghĩa cấu trúc Sach

 Khai báo và khởi tạo giá trị cho các biến cấu

trúc Sach

 Hiển thị thông tin ra màn hình

Trang 14

Khai Báo Biến Cấu Trúc

 Bài tập 3: Viết chương trình:

Định nghĩa cấu trúc Sach

 Khai báo và nhập giá trị cho các biến cấu trúc

Sach

 Hiển thị thông tin ra màn hình

Trang 15

Câu Lệnh Gán

 Có thể sử dụng câu lệnh gán đơn giản để gán giá trị của một biến cấu trúc cho một biến khác có cùng kiểu

 Ví dụ , nếu s1 và s2 là các biến cấu trúc

có cùng kiểu, thì câu lệnh sau là hợp lệ

Trang 16

Khai Báo Biến Cấu Trúc

 Bài tập 4: Viết chương trình:

Định nghĩa cấu trúc Sach

 Khai báo và nhập giá trị cho các biến cấu trúc

Sach

 Kiểm tra phép gán các biến cấu trúc

Trang 17

Trường hợp không thể dùng câu lệnh gán trực tiếp, thì

Trang 18

Khai Báo Biến Cấu Trúc

 Bài tập 5: Viết chương trình:

Định nghĩa cấu trúc Sach

 Khai báo và nhập giá trị cho các biến cấu trúc

Sach

 Sử dụng hàm memcpy để gán giá trị từ 1 biến

cấu trúc cho 1 biến cấu trúc khác

Trang 19

Cấu Trúc Lồng Trong Cấu Trúc

Một cấu trúc có thể lồng trong một cấu trúc khác Tuy nhiên, một cấu trúc không thể lồng trong chính nó

Trang 20

Cấu Trúc Lồng Trong Cấu Trúc

Việc truy cập vào các phần tử của cấu trúc này tương

tự như với cấu trúc bình thường khác,

sv.MaSV

Để truy cập vào phần tử của cấu trúc cat là một phần của cấu trúc issl ,

sv.NgaySinh.Ngay

Trang 21

Cấu trúc lồng trong cấu trúc

 Bài tập 6: Viết chương trình:

Định nghĩa cấu trúc SinhVien (MaSV, HoTen,

Trang 22

Con Trỏ Đến Cấu Trúc

 Toán tử -> được dùng để truy cập vào các phần

tử của một cấu trúc sử dụng một con trỏ

struct Sach s;

ptr = &s;

printf(“%s”,ptr->TacGia);

 Cú pháp khai báo con trỏ cấu trúc:

struct <Tên cấu trúc> * <Tên biến trỏ>

Ví dụ:

struct Sach *ptr;

Trang 23

Con Trỏ Đến Cấu Trúc

 Cấp phát bộ nhớ

ptr = (struct Sach*) malloc (sizeof (Sach));

 Truy xuất các thành phần của biến cấu trúc:

scanf (“%d”,ptr->NamXB);

 Sử dụng con trỏ để tạo mới một biến cấu trúc:

 Khai báo biến cần tạo ở dạng con trỏ

struct Sach *ptr;

Trang 24

Truyền tham số kiểu cấu trúc

 Tham số của hàm có thể là một cấu trúc

 Là một phương tiện hữu dụng:

 Để truyền một nhóm các thành phần dữ liệu có

quan hệ logic với nhau thông qua một biến

 Không cần phải truyền từng thành phần

 Hai hình thức:

 Truyền theo tham trị

 Truyền theo tham chiếu

Trang 25

Truyền tham số kiểu cấu trúc

Truyền tham trị

 Khai báo nguyên mẫu hàm:

func (struct <Tên cấu trúc> <Tên biến >);

Trang 26

Truyền tham số kiểu cấu trúc

 Khai báo nguyên mẫu hàm:

func (struct <Tên cấu trúc> & <Tên biến >);

Trang 27

Truyền tham số kiểu cấu trúc

 Khai báo nguyên mẫu hàm:

func (struct <Tên cấu trúc> * <Tên biến >);

void Nhap (struct Sach * s );

Trang 28

 Bài tập 7: Viết chương trình ở dạng hàm:

Định nghĩa cấu trúc Sach

 Khai báo và nhập giá trị cho các biến cấu trúc

Sach

 Hiển thị thông tin ra màn hình

Truyền tham số kiểu cấu trúc

Trang 29

Mảng Cấu Trúc

 Một kiểu cấu trúc phải được định nghĩa trước, sau

đó một biến mảng có kiểu đó mới được khai báo

 Cú pháp:

struct <Tên cấu trúc> <Tên mảng> [số phần tử]

Ví dụ: struct Sach SAry[50];

Để truy cập vào thành phần TenSach của

phần tử thứ tư của mảng SAry:

SAry[4].TenSach;

Trang 30

Khởi Tạo Các Mảng Cấu Trúc

Mảng cấu trúc được khởi tạo bằng cách liệt kê danh sách các giá trị phần tử của nó trong một cặp dấu móc

Trang 31

Con trỏ và mảng Cấu Trúc

Cấp phát bộ nhớ động cho 1 mảng cấu trúc

 Khai báo mảng dưới dạng con trỏ:

struct Sach *SAry;

 Cấp phát bộ nhớ:

SAry = (struct Sach*) malloc (n*sizeof(Sach))

Ví dụ:

+ Truy xuất đến phần tử thứ i của mảng: Sary[i];

Trang 32

Mảng cấu trúc

Truyền mảng cấu trúc vào hàm

 Nguyên mẫu hàm:

func (struct <Tên cấu trúc> SAry[]);

Hoặc func (struct <Tên cấu trúc> SAry[100]);

Hoặc func (struct <Tên cấu trúc> *SAry);

 Gọi hàm:

func (SAry);

Ngày đăng: 12/05/2014, 13:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN