Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Cấu trúc C (cấu trúc)


cấu trúc

Cấu trúc (còn gọi là cấu trúc) là một cách để nhóm một số biến liên quan vào một nơi. Mỗi biến trong cấu trúc được biết đến như một thành viên của cấu trúc.

Không giống như mảng , cấu trúc có thể chứa nhiều kiểu dữ liệu khác nhau (int, float, char, v.v.).


Tạo một cấu trúc

Bạn có thể tạo một cấu trúc bằng cách sử dụng từ khóa struct và khai báo từng thành viên của nó bên trong dấu ngoặc nhọn:

struct MyStructure {   // Structure declaration
  int myNum;           // Member (int variable)
  char myLetter;       // Member (char variable)
}; // End the structure with a semicolon

Để truy cập vào cấu trúc, bạn phải tạo một biến của nó.

Sử dụng từ khóa struct bên trong phương thức main() , theo sau là tên của cấu trúc và sau đó là tên của biến cấu trúc:

Tạo một biến cấu trúc có tên "s1":

struct myStructure {
  int myNum;
  char myLetter;
};

int main() {
  struct myStructure s1;
  return 0;
}

Thành viên cấu trúc truy cập

Để truy cập các thành viên của cấu trúc, hãy sử dụng cú pháp dấu chấm ( . ):

Ví dụ

// Create a structure called myStructure
struct myStructure {
  int myNum;
  char myLetter;
};

int main() {
  // Create a structure variable of myStructure called s1
  struct myStructure s1;

  // Assign values to members of s1
  s1.myNum = 13;
  s1.myLetter = 'B';

  // Print values
  printf("My number: %d\n", s1.myNum);
  printf("My letter: %c\n", s1.myLetter);

  return 0;
}
Hãy tự mình thử »

Bây giờ bạn có thể dễ dàng tạo nhiều biến cấu trúc với các giá trị khác nhau chỉ bằng một cấu trúc:

Ví dụ

// Create different struct variables
struct myStructure s1;
struct myStructure s2;

// Assign values to different struct variables
s1.myNum = 13;
s1.myLetter = 'B';

s2.myNum = 20;
s2.myLetter = 'C';
Hãy tự mình thử »

Còn các chuỗi trong cấu trúc thì sao?

Hãy nhớ rằng các chuỗi trong C thực sự là một mảng các ký tự và thật không may, bạn không thể gán giá trị cho một mảng như thế này:

Ví dụ

struct myStructure {
  int myNum;
  char myLetter;
  char myString[30];  // String
};

int main() {
  struct myStructure s1;

  // Trying to assign a value to the string
  s1.myString = "Some text";

  // Trying to print the value
  printf("My string: %s", s1.myString);

  return 0;
}

Sẽ xảy ra lỗi:

prog.c:12:15: error: assignment to expression with array type
Hãy tự mình thử »

Tuy nhiên, có một giải pháp cho việc này! Bạn có thể sử dụng hàm strcpy() và gán giá trị cho s1.myString như thế này:

Ví dụ

struct myStructure {
  int myNum;
  char myLetter;
  char myString[30]; // String
};

int main() {
  struct myStructure s1;

  // Assign a value to the string using the strcpy function
  strcpy(s1.myString, "Some text");

  // Print the value
  printf("My string: %s", s1.myString);

  return 0;
}

Kết quả:

My string: Some text
Hãy tự mình thử »

Cú pháp đơn giản hơn

Bạn cũng có thể gán giá trị cho các thành phần của biến cấu trúc tại thời điểm khai báo, trên một dòng.

Chỉ cần chèn các giá trị vào danh sách được phân tách bằng dấu phẩy bên trong dấu ngoặc nhọn {} . Lưu ý rằng bạn không phải sử dụng hàm strcpy() cho các giá trị chuỗi bằng kỹ thuật này:

Ví dụ

// Create a structure
struct myStructure {
  int myNum;
  char myLetter;
  char myString[30];
};

int main() {
  // Create a structure variable and assign values to it
  struct myStructure s1 = {13, 'B', "Some text"};

  // Print values
  printf("%d %c %s", s1.myNum, s1.myLetter, s1.myString);

  return 0;
}
Hãy tự mình thử »

Lưu ý: Thứ tự của các giá trị được chèn phải khớp với thứ tự của các loại biến được khai báo trong cấu trúc (13 cho int, 'B' cho char, v.v.).


Sao chép cấu trúc

Bạn cũng có thể gán một cấu trúc này cho một cấu trúc khác.

Trong ví dụ sau, các giá trị của s1 được sao chép sang s2:

Ví dụ

struct myStructure s1 = {13, 'B', "Some text"};
struct myStructure s2;

s2 = s1;
Hãy tự mình thử »

Sửa đổi giá trị

Nếu bạn muốn thay đổi/sửa đổi một giá trị, bạn có thể sử dụng cú pháp dấu chấm ( . ).

Và để sửa đổi một giá trị chuỗi, hàm strcpy() lại hữu ích:

Ví dụ

struct myStructure {
  int myNum;
  char myLetter;
  char myString[30];
};

int main() {
  // Create a structure variable and assign values to it
  struct myStructure s1 = {13, 'B', "Some text"};

  // Modify values
  s1.myNum = 30;
  s1.myLetter = 'C';
  strcpy(s1.myString, "Something else");

  // Print values
  printf("%d %c %s", s1.myNum, s1.myLetter, s1.myString);

  return 0;
}
Hãy tự mình thử »

Việc sửa đổi các giá trị đặc biệt hữu ích khi bạn sao chép các giá trị cấu trúc:

Ví dụ

// Create a structure variable and assign values to it
struct myStructure s1 = {13, 'B', "Some text"};

// Create another structure variable
struct myStructure s2;

// Copy s1 values to s2
s2 = s1;

// Change s2 values
s2.myNum = 30;
s2.myLetter = 'C';
strcpy(s2.myString, "Something else");

// Print values
printf("%d %c %s\n", s1.myNum, s1.myLetter, s1.myString);
printf("%d %c %s\n", s2.myNum, s2.myLetter, s2.myString);
Hãy tự mình thử »

Được rồi, cấu trúc có ích như thế nào?

Hãy tưởng tượng bạn phải viết một chương trình để lưu trữ các thông tin khác nhau về Ô tô, chẳng hạn như nhãn hiệu, mẫu mã và năm sản xuất. Điều tuyệt vời về cấu trúc là bạn có thể tạo một "Mẫu ô tô" duy nhất và sử dụng nó cho mọi ô tô bạn tạo ra. Xem bên dưới để biết ví dụ thực tế.


Ví dụ thực tế

Sử dụng cấu trúc để lưu trữ thông tin khác nhau về Ô tô:

Ví dụ

struct Car {
  char brand[50];
  char model[50];
  int year;
};

int main() {
  struct Car car1 = {"BMW", "X5", 1999};
  struct Car car2 = {"Ford", "Mustang", 1969};
  struct Car car3 = {"Toyota", "Corolla", 2011};

  printf("%s %s %d\n", car1.brand, car1.model, car1.year);
  printf("%s %s %d\n", car2.brand, car2.model, car2.year);
  printf("%s %s %d\n", car3.brand, car3.model, car3.year);

  return 0;
}
Hãy tự mình thử »

Bài tập C

Kiểm tra bản thân bằng các bài tập

Bài tập:

Điền phần còn thiếu để tạo cấu trúc Car:

Xe hơi {
  nhãn hiệu char[50];
  mô hình char[50];
  int năm;
};

Bắt đầu bài tập



×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .