Danh mục

kỹ thuật lập trình C chuyên nghiệp phần 7

Số trang: 14      Loại file: pdf      Dung lượng: 407.26 KB      Lượt xem: 14      Lượt tải: 0    
Jamona

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

Thông tin tài liệu:

Tham khảo tài liệu kỹ thuật lập trình c chuyên nghiệp phần 7, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
kỹ thuật lập trình C chuyên nghiệp phần 7 Cấu trúc - Struct Struct Phạm Thế BảoTrường Đại học Khoa học Tự nhiên Tp.HCM Đạ Khoa nhiên Tp Ki Kiểu cấu trúcKháiKhái niệmKhaiKhai báoTruyTruy xuất các thành phầnCấu trúc & mảngConCon trỏ đến cấu trúc Khái Khái niệmCấu trúc là kiểu dữ liệu gồm một nhóm cácthành phần có kiểu không giống nhau, mỗi nhau,thành phần được xác định bằng một tên riêng hbiệt (kiểu dữ liệu trừu tượng – Abstract DataType – ADT).KiKiểu của mỗi thành phần trong cấu trúc là mộtkiếu đã được định nghĩa trước, kể cả mảng và c,các cấu trúc khác. khác.Cấu trúc – Khai báo trong C báMột kiểu cấu trúc được định nghĩa với từ khóa struct.typedef struct Tênkiểu{ Kiểuthànhphần Tênthànhphần; n; Kiểuthànhphần Tênthànhphần; n; Kiểuthànhphần Tênthànhphần; Kiểuthànhphần Tênthànhphần; n; ...};Cấu trúc – ví dụ typedef struct TBook typedef struct TDate { { char title[80]; char day; char author[80]; char month; float price; int year; char isbn[20]; }; };typedef struct TStudent{ char ID[10]; //khai báo các biến char firstname[10]; TBook book; char lastname[20]; TStudent list[100]; TDate dob; float marks[10];};Cấu trúc – Truy xuất các thành phần Cá Các thành phần của một biến kiểu cấu trúc được truy xuất h thông qua tên biến, dấu . và tên thành phần. n. void Print(TStudent m) { printf(Name : %s %s , %s %s m.firstname, m.lastname); printf(Student ID : %s , m.ID); printf(Date of birth : %hi/%hi/%i, of birth %hi/%hi/%i m.dob.day, m.dob.month, m.dob.year); printf(Marks : ); for (int i=0; iCấu trúc – Truy xuất các thành phầnvoid ReadInfo(TStudent &m){ printf(Type student ID: ); scanf(%s, m.ID); printf(Type first name: ); gets(m.firstname); printf(Type last name: ); gets(m.lastname); printf(Date of birth (d m y): ); of birth (d y): ); scanf(%hi %hi %i, &(m.dob.day), &(m.dob.month), &(m.dob.year)); printf(Marks (10 floats): ); (10 floats): ); for (int i=0; iKích thước của một cấu trúcKí th Kí Kích thước kiểu dữ liệu cấu trúc: c: sizeof() vd: SinhVien_t_size = sizeof(SinhVien); // 48 sizeof(SinhVien);Mảng các Cấu trúc Kh Khai bao biến mảng các Cấu trúc cũng giống như khai báo biến mảng trên các kiểu dữ liệu cơ bản khác. khác. Dùng Dùng tên mảng khi truy cập từng phần tử trong mảng các cấu trúc và toán tử thành viên để truy cập các trường dữ liệu của từng thành phần cấu trúc. struct SinhVien{ SinhVien mang[100]; char hoten[31]; … int namsinh; char char noisinh noisinh[4]; char maso[11]; mang[i].namsinh }Con trỏ đến Cấu trúc đế Kh bá Khai báo con trỏ đến cấu trúc tương tự như các kiểu dữ liệu khác. khác. SinhVien *SV_ptr Toán Toán tử truy cập trường thành phần của cấu trúc do con trỏ chỉ đến: -> n: SV_ptr- SV_ptr->namsinh SV_ptr->noisinh r-Union Kh bá Khai báo union được dùng để khai báo các biến dùng chung bộ nhớ. union union int_or_long { int i; long l; } a_number; a_number; Các Các thành phần của union có thể không có kích thước bằng nhau. Kích Kích thước bộ nhớ trong khai báo union là kích thước của union là kiểu dữ liệu lớn nhất có trong khai báo union.VíVí dụ union int_or_long {1. int i;2. long l;3. } a_number;4. a_number. a_number.i = 5;5. a_number.l = 100L;6. // anonymous union7. union {8. int i;9. float f;10. };11. i = 10; 10;12. f = 2.2;13.KiKiểu Enum (liệt kê) Ki Enum: Kiểu Enum: Li Liệt kê toàn bộ giá trị mà biến có thể nhận Khai báo: Khai báo: enum { u_enum>{ }; Ví Ví dụ: enum day{Hai, Ba, Tu, Nam, Sau, Bay, CN}; Ba ...

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