C cấu trúc

Giới thiệu về C Structures

Sử dụngstructtừ khóa chúng ta có thể tạo cấu trúc dữ liệu phức tạp bằng cách sử dụng các loại C cơ bản.

Cấu trúc là một tập hợp các giá trị của các kiểu khác nhau.Mảngtrong C được giới hạn ở một kiểu, vì vậy các cấu trúc có thể được chứng minh là rất thú vị trong nhiều trường hợp sử dụng.

Đây là cú pháp của một cấu trúc:

struct <structname> {
  //...variables
};

Thí dụ:

struct person {
  int age;
  char *name;
};

Bạn có thể khai báo các biến có kiểu cấu trúc đó bằng cách thêm chúng vào sau dấu ngoặc nhọn đóng, trước dấu chấm phẩy, như sau:

struct person {
  int age;
  char *name;
} flavio;

Hoặc nhiều cái, như thế này:

struct person {
  int age;
  char *name;
} flavio, people[20];

Trong trường hợp này, tôi tuyên bố mộtpersonbiến có tênflaviovà một mảng 20personđược đặt tênpeople.

Chúng ta cũng có thể khai báo các biến sau này bằng cú pháp sau:

struct person {
  int age;
  char *name;
};

struct person flavio;

Chúng ta có thể khởi tạo một cấu trúc tại thời điểm khai báo:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

và khi chúng ta đã xác định một cấu trúc, chúng ta có thể truy cập các giá trị trong đó bằng dấu chấm:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” }; printf("%s, age %u", flavio.name, flavio.age);

Chúng tôi cũng có thể thay đổi các giá trị bằng cú pháp dấu chấm:

struct person {
  int age;
  char *name;
};

struct person flavio = { 37, “Flavio” };

flavio.age = 38;

Các cấu trúc rất hữu ích vì chúng ta có thể chuyển chúng xung quanh dưới dạng tham số hàm hoặc trả về giá trị, nhúng các biến khác nhau vào bên trong chúng và mỗi biến có một nhãn.

Điều quan trọng cần lưu ý là cấu trúcthông qua bản sao, tất nhiên trừ khi bạn vượt quacon trỏvào một cấu trúc, trong trường hợp đó, nó được chuyển bằng tham chiếu.

Sử dụngtypedefchúng ta có thể đơn giản hóa mã khi làm việc với các cấu trúc.

Hãy làm một ví dụ:

typedef struct {
  int age;
  char *name;
} PERSON;

Cấu trúc chúng tôi tạo bằng cách sử dụngtypedefthường, theo quy ước, là chữ hoa.

Bây giờ chúng ta có thể khai báo mớiPERSONcác biến như thế này:

PERSON flavio;

và chúng ta có thể khởi tạo chúng khi khai báo theo cách này:

PERSON flavio = { 37, "Flavio" };

Tải xuống miễn phí của tôiSổ tay C


Các hướng dẫn khác về tiếng clang: