Struct Trong C - Học Lập Trình C Online - Viettuts

Quản lý bộ nhớ trong lập trình C Mảng của structure trong C

Structure trong C (cấu trúc trong C) là một kiểu dữ liệu người dùng tự định nghĩa (user defined datatype) cho phép bạn lưu trữ các loại phần tử khác nhau.

Mỗi phần tử của một cấu trúc được gọi là một thành viên (member).

Nó hoạt động như một template trong C++ và lớp trong Java. Bạn có thể khai báo các loại phần tử khác nhau trong đó.

Nội dung chính

  • Định nghĩa cấu trúc trong C
  • Khai báo biến cấu trúc
    • 1. Cách 1
    • 1. Cách 2
    • Cách tiếp cận nào tốt hơn?
  • Truy cập các thành viên của cấu trúc
  • Ví dụ cấu trúc (structure) trong C

Định nghĩa cấu trúc trong C

Từ khóa struct được sử dụng để xác định cấu trúc. Hãy xem cú pháp để định nghĩa cấu trúc trong C.

struct structure_name { data_type member1; data_type member2; ... data_type memeberN; };

Ví dụ định nghĩa cấu trúc của Employee trong C.

struct employee { int id; char name[50]; float salary; };

Khai báo biến cấu trúc

Có hai cách để khai báo biến cấu trúc:

  1. Sử dụng từ khóa struct trong hàm main().
  2. Khai báo biến tại thời điểm định nghĩa cấu trúc.

1. Cách 1

Khai báo biến cấu trúc bên trong hàm main(), ví dụ:

struct employee { int id; char name[50]; float salary; }; int main() { struct employee e1, e2; }

1. Cách 2

Khai báo biến cấu trúc tại thời điểm định nghĩa cấu trúc, ví dụ:

struct employee { int id; char name[50]; float salary; } e1, e2;

Cách tiếp cận nào tốt hơn?

Khi số lượng biến không cố định, sử dụng phương pháp tiếp cận thứ nhất. Nó cung cấp cho bạn sự linh hoạt để khai báo biến cấu trúc nhiều lần. Khi số lượng biến được cố định, sử dụng phương pháp thứ 2.

Truy cập các thành viên của cấu trúc

Có hai cách để truy cập vào các thành viên cấu trúc:

  1. Bởi . (thành viên hoặc toán tử chấm).
  2. Bởi -< (toán tử con trỏ cấu trúc).

Ví dụ:

e1.id = 17; e1.name = "Vinh"; e1.salary = 1000;

Ví dụ cấu trúc (structure) trong C

Ví dụ 1: lưu trữ thông tin của một employee.

#include<stdio.h> #include <string.h> struct employee { int id; char name[50]; float salary; } e1; // khai bao bien e1 int main() { // luu tru thong tin employee e1.id = 17; strcpy(e1.name, "Vinh Tran"); // sao chep string thanh mang char e1.salary = 1000; // hien thi thong tin employee ra man hinh printf("employee 1 id : %d\n", e1.id); printf("employee 1 name : %s\n", e1.name); printf("employee 1 salary : %f\n", e1.salary); return 0; }

Kết quả:

employee 1 id : 17 employee 1 name : Vinh Tran employee 1 salary : 1000.000000

Ví dụ 2: lưu trữ thông tin của nhiều employee.

#include<stdio.h> #include <string.h> struct employee { int id; char name[50]; float salary; }; int main() { // khai bao employee e1, e2 struct employee e1, e2; // luu tru thong tin employee e1 e1.id = 17; strcpy(e1.name, "Vinh Tran"); // sao chep string thanh mang char e1.salary = 1000; // luu tru thong tin employee e2 e2.id = 37; strcpy(e2.name, "Quy Pham"); // sao chep string thanh mang char e2.salary = 1700; // hien thi thong tin employee e1 ra man hinh printf("employee 1 id : %d\n", e1.id); printf("employee 1 name : %s\n", e1.name); printf("employee 1 salary : %f\n", e1.salary); // hien thi thong tin employee e2 ra man hinh printf("employee 2 id : %d\n", e2.id); printf("employee 2 name : %s\n", e2.name); printf("employee 2 salary : %f\n", e2.salary); return 0; }

Kết quả:

employee 1 id : 17 employee 1 name : Vinh Tran employee 1 salary : 1000.000000 employee 2 id : 37 employee 2 name : Quy Pham employee 2 salary : 1700.000000 Quản lý bộ nhớ trong lập trình C Mảng của structure trong C

Từ khóa » Khai Báo Cấu Trúc