Professional Documents
Culture Documents
Cap Phat Dong Va Cau Truc
Cap Phat Dong Va Cau Truc
Cap Phat Dong Va Cau Truc
vn
BỘ NHỚ ĐỘNG
KIỂU DỮ LIỆU CÓ CẤU TRÚC
NỘI DUNG
free(a);
}
Trường Đại Học CNTT
Hàm nhập xuất mảng 1 chiều động
void Nhap1c(int a[],int n) //hoặc *a
{
for(i=0;i<n;i++)
{ printf(“nhap a[%d]=”,i);
scanf(“%d”,a+i);
}
}
void Xuat1c(int a[],int n) //hoặc *a
{
for(i=0;i<n;i++)
printf(“%d”,a[i]); // hoặc *(a+i)
}
void main()
{
int *a,n,i;
printf(“Nhap n=”); scanf(“%d”,&n);
a= (int*) malloc(n*sizeof(int));
Nhap1c(a,n);
printf(“Mang 1 chieu sau khi nhap”);
Xuat1c(a,n);
}
Khái niệm
Khai báo kiểu cấu trúc struct
Mảng và con trỏ cấu trúc
Truy xuất các thành phần của cấu
trúc
Kiểu cấu trúc và hàm
Ví dụ minh họa
Trường Đại Học CNTT
KHÁI NIỆM
Kiểu cấu trúc (hay bản ghi đối với một số
NNLT khác) là dạng dữ liệu thường được
định nghĩa để mô tả dữ liệu có nhiều thành
phần thuộc nhiều kiểu dữ liệu khác nhau.
Kiểu dữ liệu của từng thành phần có thể là
các kiểu dữ liệu cơ bản (ký tự, số nguyên, số
thực), con trỏ, mảng, và thậm chí là một kiểu
cấu trúc.
Kiểu cấu trúc trên C được định nghĩa thông
qua từ khoá struct
Để truy xuất đến một thành phần của biến cấu trúc tĩnh
ta dùng toán tử chấm “.” và dùng toán tử “->” đối với
biến con trỏ.
Ví dụ:
HOCSINH hs;
hs.sHoTen=“Phúc Khang An”;
hs.nToan=10;
hs.nVan = 7;
hs.fDTB=(hs.nToan+hs.nVan)/2.0;
Không nên dùng toán tử & đối với thành phần cấu trúc.
Trường Đại Học CNTT
TRUY XUẤT THÀNH PHẦN CẤU TRÚC
Các thao tác trên hàm cho biến cấu trúc hoàn toàn
tương tự cho biến thông thường. Chẳng hạn truyền
tham biến và tham trị như sau:
Prototype:
void NhapHS(PTR_HOCSINH phs);
void XuatHS(HOCSINH hs);
Khi đó ta có thể gọi dùng hàm:
HOCSINH hs;
NhapHS(&hs);
XuatHS(hs);
Trường Đại Học CNTT
VÍ DỤ MINH HỌA
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>