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

KIỂU DỮ LIỆU CÓ CẤU TRÚC VÀ KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA TRONG C - CHƯƠNG 10

Chia sẻ: Trương Xuân Trung | Ngày: | Loại File: PPT | Số trang:18

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

Cấu trúc (struct) là một kiểu dữ liệu phức hợp được tạo từ các kiểu dữ liệu khác, các kiểu dữ liệu này được sử dụng khai báo cho các biến thành phần của biến kiểu struct.

Chủ đề:
Lưu

Nội dung Text: KIỂU DỮ LIỆU CÓ CẤU TRÚC VÀ KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA TRONG C - CHƯƠNG 10

  1. MÔN HỌC G i ng  ên:N guyễn  c  oàng ả vi   Đứ H B ộ  ôn  i u  hi n  ự  ng m Đ ề K ể T Độ K hoa  i n  Đi n  ử Đ ệ –  ệ T ĐạiH ọc  ách  hoa  H CM   B K Tp. Em ai:ndhoang@ hcm utedu. l  . vn
  2. N ộidung  ôn  ọc 10    mh( chương) ( t ần  28 i tLT  14 i tBT) 14 u =  tế   +  tế   Chương 1:  Ôn lại các kiến thức cơ bản về máy tính Chương 2:  Các kiểu dữ liệu và thao tác Chương 3:  Giới thiệu ngôn ngữ lập trình C Chương 4:  Các thành phần cơ bản và kiểu dữ liệu của  C Chương 5:  Các lệnh điều khiển và vòng lặp Chương 6:  Hàm Chương 7:  Lớp lưu trữ của biến ­ Sự chuyển kiểu Chương 8:  Mảng Chương 9:  Pointer
  3. T àilệu ham   ảo  i t kh Tài liệu:  Tin Học 2      Đặng  ành  í Th Tn Kỹ Thuật Lập Trình C      G S.Phạm   ăn  t VẤ   Giáo Trình C      N guyễn  ữu  ấn H Tu Giáo trình BT Kỹ thuật lập trình  C
  4. Đánh  á gi Thi giữa kỳ : 20% Thi cuối kỳ : 80%
  5. CHƯƠNG 10 C Á C   i U   Ữ  ỆU   Ó   ẤU   Ú C K Ể D Li C C TR K i U   Ữ  ỆU   Ự  N H   G H ĨA Ể D Li T ĐỊ N
  6. N ộidung  ương    ch 10 10.1  Kiểu struct 10.2  Kiểu union 10.3  Kiểu enum 10.4  Định nghĩa kiểu bằng typedef
  7. ể s ruct K i u t
  8.   ệ –  K háini m   K haibáo t   s ruct Cấu trúc (struct) là một kiểu dữ liệu phức hợp  được tạo  từ  các  kiểu  dữ  liệu  khác,  các  kiểu  dữ  liệu  này  được  sử  dụng  khai  báo  cho  các  biến  thành  phần  của  biến  kiểu  struct  Cú pháp định nghĩa một cấu trúc struct ten_cau_truc {  khai  báo  các  biến  thành  phần;  (biến,  mảng,  cấu  trúc đã định nghĩa) };
  9.   ệ –  K háini m   K haibáo t   s ruct VD1: VD2: struct ngay struct  nhancong { { unsigned  char ten[15]; ngaythu; char diachi[40]; unsigned thang; double bacluong; unsigned nam; struct ngay ngaysinh; }; struct  ngay  ngaycongtac; };
  10.   ệ –  K háini m   K haibáo t   s ruct Việc  định nghĩa một cấu trúc mới chỉ báo cho bộ dịch C  biết là có một cấu trúc đã được định nghĩa, chứ chưa cấp  chỗ cho biến cấu trúc Để  có  biến  cấu  trúc  ta  phải  khai  báo  biến với  kiểu  cấu  trúc đã định nghĩa Cú pháp khai báo một biến cấu trúc struct ten_cau_truc ten_bien; Để truy  xuất  đến một thành phần của  biến cấu trúc ta  sử dụng toán tử chấm “.”
  11.   ệ –  K háini m   K haibáo t   s ruct VD3:   #include "conio.h”      #include "stdio.h" struct ngay    {  unsigned ng;      unsigned th;      unsigned na;   };    main() {  struct ngay ns;    unsigned d,m,y;    printf("Moi nhap ngay sinh theo mau (dd mm yy): ");    scanf("%u%u%u",&d,&m,&y);    ns.ng = d;   ns.th = m;   ns.na = y;       printf("\nBan  sinh  ngay:  %u/%u/ %u",ns.ng,ns.th,ns.na);
  12. VD4:#include  "conio.h”  #include  "stdio.h”  #include  "string.h" struct ngay {  unsigned ng;   unsigned th;   unsigned na; }; struct sinhvien {  char ht[30];   char mssv[10];   struct ngay ns;  } sv;     main() {    printf("Moi  SV  nhap:  ");      printf("\nHo  ten:  ");      gets(sv.ht);    printf("\nMSSV: ");   gets(sv.mssv);    printf("\nNgay sinh (dd mm yy): ");    scanf("%u%u%u",&sv.ns.ng,&sv.ns.th,&sv.ns.na);    printf("\nSV %s co mssv %s \nsinh ngay: %u/%u/%u", 
  13.   ệ –  K háini m   K haibáo t   s ruct C cho phép gán các cấu trúc cùng kiểu cho nhau qua tên  biến  cấu  trúc  thay  vì  phải  gán  từng  thành  phần  cho  nhau C  cho  phép  đối  số  của  hàm  là  struct,  được truyền theo  tham số trị Kiểu  struct  có  thể  tính  toán  kích  thước  theo  byte  bằng  toán tử sizeof
  14. VD5:#include "conio.h” #include "stdio.h” #include "string.h" struct ngay {  unsigned ng;   unsigned th;   unsigned na; } ; struct sinhvien {  char ht[30];   char mssv[10];   struct ngay ns; } sv,svc; void in(struct sinhvien sv);    main() { printf("Moi SV nhap: ");   printf("\nHo ten: ");   gets(sv.ht);    printf("\nMSSV: ");   gets(sv.mssv);    printf("\nNgay sinh (dd mm yy): ");    scanf("%u%u%u",&sv.ns.ng,&sv.ns.th,&sv.ns.na);    svc=sv;      in(svc);   getch(); } void in(struct sinhvien sv) {   printf("\nSV %s co mssv %s \nsinh ngay:\     %u/%u/%u",sv.ht,sv.mssv,sv.ns.ng,sv.ns.th,sv.ns.na); }
  15. M ảng  ác t c s ruct C cho phép khai báo mảng struct  như mảng các kiểu dữ  liệu khác Cú pháp: struct  ten_struct  ten_bien_struct[kichthuoc]; VD: struct  sinhvien  sv[5];
  16. VD6 :  #include "conio.h” #include "stdio.h” #include "string.h" struct ngay  {   unsigned ng;   unsigned th;   unsigned na;  } ; struct sinhvien {  char ht[30];   char mssv[10];   struct ngay ns; }  sv[3]; void in(struct sinhvien sv);    main() {  int i;   for(i=0;i
  17. Poi er ớim ộts ruct nt t    t Poi Một  biến  struct  sau  khi  khai  báo  sẽ  có một  địa chỉ xác  định trong bộ nhớ. Có thể lấy  địa chỉ này bằng toán tử  & Địa  chỉ  này  là  một  hằng  pointer  trỏ  đến  đầu  của  cấu  trúc, ta có thể khai báo một pointer trỏ tới một cấu trúc Cú pháp: struct  ten_struct  *ten_pointer; VD: struct  sinhvien  sv,msv[5],*psv; psv = &sv; psv = msv;
  18. VD7  :    #include  "conio.h”    #include  "stdio.h”      #include  "string.h" struct ngay {   unsigned ng;   unsigned th;   unsigned na; }; struct  sinhvien  {  char  ht[30];  char  mssv[10];  struct  ngay  ns;}  sv[3],*psv; void nhap(struct sinhvien *psv);   void xuat(struct sinhvien sv);    main() { int i; psv=sv;   for(i=0;imssv);   printf("\nNgay sinh (dd mm yy): ");
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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