Kiểu dữ liệu struct

Một phần của tài liệu Bai giang Co So Lap Trinh docx (Trang 48 - 51)

- Khái niệm: struct là kiểu dữ liệu mà trong đó mỗi phần tử của nó có nhiều trường với các kiểu dữ liệu có thể khác nhau.

1. Khai báo struct

* Cách 1: Khai báo trực tiếp.

struct [Tên_struct]

{ kiểu_dữ_liệu tên_trường1; kiểu_dữ_liệu tên_trường2; ...

kiểu_dữ_liệu tên_trườngn;

} bien1, bien2, …. bien n ; /*danh_sach_bien_nhan_struct*/

Chú ý: Danh sách biến nhận dữ liệu kiểu struct là tên các biến được viết cách nhau bởi dấu “,” Ví dụ: struct DiaChi { int SoNha; char Pho[20]; char ThanhPho[20]; } OngA, BaB;

* Cách 2: Khai báo gián tiếp.

struct <Tên_struct> { kiểu_dữ_liệu tên_trường1; kiểu_dữ_liệu tên_trường2; ... kiểu_dữ_liệu tên_trườngn; }

struct <tên_struct> bien1, bien2, …. bien n ; /*danh_sach_bien_nhan_struct*/

Ví dụ: struct DiaChi { int SoNha; char Pho[20]; char ThanhPho[20]; }

struct DiaChi OngA, BaB;

* Cách 3: Khai báo struct lồng nhau

Ví dụ:

struct Date

unsigned char thang; unsigned int nam; }

struct NhanSu

{char HoTen[30] ;

struct Date NgaySinh ; unsigned int GioiTinh;

struct DiaChi NoiO ; float Luong;

} NguoiA, NguoiB;

2. Truy cập vào phần tử của struct

Muốn truy cập đến 1 trường của một biến bất kỳ có kiểu dữ liệu struct, ta viết: Tên_biến.Tên_trường

Ví dụ:

OngA.SoNha = 10;

OngA. Pho = “Ha Dong”; OngA.ThanhPho = “Ha Noi”

3. Phối hợp mảng và dữ liệu kiểu struct

- Mảng_struct là mảng mà mỗi phần tử của nó có kiểu dữ liệu struct.

Ví dụ:

struct DiaChi NoiO[100]; (adsbygoogle = window.adsbygoogle || []).push({});

- Muốn truy cập vào 1 trường của biến thứ i trong mảng ta viết: Tên_biến_mảng[chỉ_số].Tên_Trường;

Ví dụ:

for (i=0; i<5; i++) {

printf("Nhap dia chi noi o cho nguoi thu %d",i+1) ; printf("\nSo nha: ") ; scanf("%d",&NoiO[i].SoNha) ; printf(" - Pho: ") ; scanf("%s",&NoiO[i].Pho) ;

printf(" - Thanh pho: ") ; scanf("%s",&NoiO[i].ThanhPho) ; } ví dụ 27 : #include <stdio.h> #include <conio.h> main() { clrscr(); int i; struct DiaChi

{int SoNha; char Pho[20]; char ThanhPho[20]; };

struct DiaChi NoiO[10]; for (i=0; i<3; i++) {

printf("\n\nNhap dia chi noi o cho nguoi thu %d :",i+1); printf("\n So nha: "); scanf("%d",&NoiO[i].SoNha); printf("\n Pho: "); scanf("%s",&NoiO[i].Pho);

printf("\n Thanh pho: "); scanf("%s",&NoiO[i].ThanhPho); }

clrscr();

for (i=0; i<3; i++) {

printf("\n\nDia chi noi o cho nguoi thu %d :",i+1); printf("\n So nha: %d",NoiO[i].SoNha);

printf("\n Pho: %s",NoiO[i].Pho);

printf("\n Thanh pho: %s",NoiO[i].ThanhPho); }

getch(); }

Một phần của tài liệu Bai giang Co So Lap Trinh docx (Trang 48 - 51)