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

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

Đ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

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

Chương 7 Kiu d liu cu trc 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  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 Cấu Trúc  Một cấu trúc bao gồm các thành phần dữ liệu, không nhất thiết cùng kiểu, được nhóm lại với nhau. 1 Biến I L L U S I O N Mảng I L L U S I O N B A C H 1 Tên sách Tác giả Lần xuất bản Định Nghĩa Cấu Trúc  Cú pháp định nghĩa câu trúc: struct <Tên cấu trúc> { Khai bo các thnh phn dữ liệu; }; Ví dụ: struct Sach{ char TenSach [25]; char TacGia [20]; int NamXB; float Gia; }; Đị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. 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. Ví dụ: struct Sach{ char TenSach[25]; char TacGia[20]; int NamXB; float Gia; } s1, s2; struct Sach s1, s2; hoặc struct Sach s1; struct Sach s2; Từ Khóa typedef  Một kiểu dữ liệu có thể được định nghĩa bằng cách sử dụng từ khóa typedef  Nó không tạo ra một kiểu dữ liệu mới, mà định nghĩa một tên mới cho một kiểu đã có.  Cú pháp: typedef <Kiểu dữ liệu> <Tên mới>; Ví dụ: typedef int Int32;  typedef không thể sử dụng với storage classes  Sử dụng từ kháo typedef trong định nghĩa cấu trúc. typedef struct { Khai bo các thnh phn dữ liệu; } <Tên cấu trúc>; Ví dụ: typedef struct { char TenSach [25]; char TacGia [20]; int NamXB; float Gia; }Sach; Từ Khóa typedef  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 { int thuc; int ao; }SoPhuc; SoPhuc sp; Struct SoPhuc { int thuc; int ao; }; struct SoPhuc sp; 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. [...]... trị cho c c biến c u tr c Sach  Hiển thị thông tin ra màn hình 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 cc ng kiểu  Ví dụ, nếu s1 và s2 là c c biến c u tr cc ng kiểu, thì c u lệnh sau là hợp lệ s2 = s1; 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... 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 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ó struct Date{ int Ngay, Thang, Nam; }; struct SinhVien { int MaSV; char HoTen[30]; struct Date NgaySinh; }sv; 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...Truy C p Phần Tử c a C u Tr cC c phần tử c a c u tr c đư c truy c p thông qua vi c sử dụng toán tử chấm (.)  Toán tử (.) c n đư c gọi là toán tử thành viên membership  C pháp: . Ví dụ: scanf(“%s”, s1.TenSach); 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à... 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 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, NgaySinh)  Khai báo và nhập giá trị cho biến c u tr c SinhVien  Hiển thị thông tin ra màn hình Con Trỏ Đến C u Tr cC pháp khai báo con trỏ c u tr c: struct * Ví dụ: struct Sach *ptr; 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); Con Trỏ Đến C u Tr c  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;  C p phát bộ nhớ ptr = (struct Sach*) malloc (sizeof (Sach));  Truy xuất c c thành phần c a... hình 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 [số phần tử] Ví dụ: struct Sach SAry[50];  Để truy c p vào thành phần TenSach phần tử thứ tư c a mảng SAry: SAry[4].TenSach; c a 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... c u tr c Sach  Kiểm tra phép gán c c biến c u tr c C u Lệnh Gán  Trường hợp không thể dùng c u lệnh gán tr c tiếp, thì c thể sử dụng hàm tạo sẵn memcpy()  C pháp: memcpy (void * destn, void *source, size_t size); Ví dụ: memcpy (&s2, &s1, sizeof(struct Sach)); 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 ... mảng c u tr c vào hàm  Nguyên mẫu hàm: func (struct SAry[]); Ho c func (struct SAry[100]); Ho c func (struct *SAry);  Gọi hàm: func (SAry); Mảng c u tr c Bài tập 8: Viết chương trình ở dạng hàm, th c hiện c c yêu c u:  Khai báo c u tr c SinhVien (MaSV, HoTen, NgaySinh, DTB);  Khai báo và nhập dữ liệu cho mảng gồm n sinh viên từ bàn phím  Hiển thị c c. .. kiểu c u tr c  Truyền tham chiếu  C ch 2: Truyền gián tiếp thông qua con trỏ  Khai báo nguyên mẫu hàm: func (struct * ); void Nhap(struct Sach *s);  Gọi hàm: () Ho c: (& ) Truyền tham số kiểu c u tr c 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... hàm: func (struct ); Ví dụ: void HienThi (struct Sach s);  Gọi hàm: ( ) struct Sach s; HienThi(s); Truyền tham số kiểu c u tr c  Truyền tham chiếu  C ch 1: Truyền tr c tiếp địa chỉ  Khai báo nguyên mẫu hàm: func (struct & ); Ví dụ: void Nhap(struct Sach &s);  Gọi hàm: ( ) struct Sach s; Nhap(s);

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