Mục lục:
- Khái niệm cơ bản của struct
- Làm thế nào để điền vào một cấu trúc
- Làm thế nào để tạo ra một mảng các cấu trúc
Video: Bài 1 Giáo trình Ngôn ngữ lập trình C - Các khái niệm cơ bản - Bùi Thế Tâm 2025
Bạn có thể nghĩ cấu trúc ngôn ngữ lập trình C như một multivariable, hoặc nhiều biến biến thành một. Bạn sử dụng cấu trúc để lưu trữ hoặc truy cập thông tin phức tạp. Bằng cách đó, bạn có thể giữ các biến int, char, float, và thậm chí các mảng, tất cả trong một gói gọn.
Khái niệm cơ bản của struct
Một cấu trúc không phải là một kiểu biến. Thay vào đó, hãy nghĩ đến nó như là một khung chứa nhiều loại biến. Trong nhiều cách, một cấu trúc tương tự như một bản ghi trong cơ sở dữ liệu. Ví dụ:
Tên tuổi Nghề nghiệp cờ bạc
Ba mục này có thể là các trường trong một bản ghi cơ sở dữ liệu, nhưng chúng cũng có thể là các thành viên trong một cấu trúc: Tên sẽ là một chuỗi; Tuổi, một số nguyên; và nợ cờ bạc, một giá trị dấu phẩy không dấu. Đây là cách một bản ghi như vậy sẽ trông giống như một cấu trúc trong C:
cấu trúc hồ sơ {char tên [32]; int tuổi; nợ nổi;};
struct là một từ khóa ngôn ngữ C giới thiệu, định nghĩa hoặc tạo ra một cấu trúc mới.
record là tên của cấu trúc mới đang được tạo ra.
Bên trong các dấu ngoặc nhọn bao gồm các thành viên của cấu trúc, các biến có trong cấu trúc được đặt tên. Kiểu cấu trúc bản ghi chứa ba biến thành viên: một tên chuỗi, một tên tuổi int, và một giá trị nổi, nợ.
Để sử dụng cấu trúc, bạn phải khai báo một biến cấu trúc của kiểu cấu trúc mà bạn đã tạo. Ví dụ:
cấu trúc con người;
Dòng này tuyên bố một biến mới của kiểu cấu trúc bản ghi. Biến mới có tên con người .
Các biến cấu trúc cũng có thể được khai báo khi bạn xác định cấu trúc chính nó. Ví dụ:
cấu trúc hồ sơ {char tên [32]; int tuổi; float debt;} người;
Các câu lệnh này định nghĩa cấu trúc bản ghi và khai báo một biến cấu trúc bản ghi, con người . Nhiều biến của kiểu cấu trúc đó cũng có thể được tạo ra:
struct record {char name [32]; int tuổi; float debt;} hóa đơn, mary, dan, susie;
Bốn biến cấu trúc bản ghi được tạo ra trong ví dụ này. Mỗi biến có quyền truy cập vào ba thành viên được xác định trong cấu trúc.
Để truy cập các thành viên trong một biến cấu trúc, bạn sử dụng một khoảng thời gian, đó là toán tử thành viên . Nó kết nối tên biến cấu trúc với một tên thành viên. Ví dụ:
printf ("Nạn nhân:% sn", tên hóa đơn);
Câu lệnh này tham khảo tên thành viên trong biến cấu trúc bill . Một mảng char, nó có thể được sử dụng trong mã của bạn như bất kỳ mảng char khác. Các thành viên khác trong biến cấu trúc cũng có thể được sử dụng như các đối tượng riêng lẻ của chúng:
dan.tuổi = 32;
Làm thế nào để điền vào một cấu trúc
Như với các biến khác, bạn có thể gán các giá trị cho một biến cấu trúc khi nó được tạo ra. Đầu tiên bạn phải định nghĩa kiểu cấu trúc và khai báo biến cấu trúc với các giá trị thành viên của nó. Đảm bảo rằng các giá trị đặt trước phù hợp với thứ tự và loại thành viên được xác định trong cấu trúc, như thể hiện trong Tuyên bố một cấu trúc đã được khởi tạo.
TUYỂN DỤNG CƠ CẤU BỔ SUNG
# Bao gồm int main () {struct president {char name [40]; int năm;}; chủ tịch cơ cấu đầu tiên = {"George Washington", 1789}; printf ("Tổng thống đầu tiên là% sn", tên đầu tiên); printf ("Ông ta đã khánh thành trong% dn", năm đầu tiên); return (0);}
Bài tập 1 : Tạo một chương trình mới bằng cách gõ mã nguồn từ Declaring a Initialized Structure vào trình soạn thảo. Xây dựng và chạy.
Bạn cũng có thể khai báo một cấu trúc và khởi tạo nó trong một câu lệnh:
struct president {char name [40]; int year;} first = {"George Washington", 1789};
Bài tập 2 : Sửa đổi mã nguồn của bạn từ Bài tập 1 để cấu trúc và biến được khai báo và khởi tạo như là một câu lệnh.
Mặc dù bạn có thể khai báo một cấu trúc và khởi tạo một biến cấu trúc như được chỉ ra, bạn chỉ có thể sử dụng nó một lần. Bạn không thể sử dụng kỹ thuật để khai báo biến cấu trúc thứ hai, nó phải được thực hiện theo cách truyền thống, như thể hiện trong Tuyên bố một cấu trúc đã được khởi tạo.
Bài tập 3 : Thêm biến cấu trúc tổng thống khác, thứ hai, vào mã của bạn, khởi tạo cấu trúc đó với thông tin về vị tổng thống thứ hai, John Adams, người được khánh thành vào năm 1797. Hiển thị nội dung của cả hai cấu trúc.
Làm thế nào để tạo ra một mảng các cấu trúc
Việc tạo các biến cấu trúc cá thể, một cách khác, là chán và lãng phí như tạo ra một loạt các kiểu biến cá nhân. Giải pháp cho nhiều cấu trúc giống như đối với nhiều biến cá nhân: một mảng.
Một mảng cấu trúc được khai báo như sau:
struct scores player [4];
Câu lệnh này khai báo một mảng các cấu trúc điểm. Mảng được đặt tên là máy nghe nhạc, và nó có chứa bốn biến cấu trúc như các phần tử của nó.
Các cấu trúc trong mảng được truy cập bằng cách sử dụng một sự kết hợp của ký hiệu mảng và cấu trúc. Ví dụ:
người chơi [2]. name
Biến trong dòng trước truy cập thành viên name trong phần tử thứ ba trong mảng cấu trúc máy nghe nhạc. Vâng, đó là yếu tố thứ ba vì phần tử đầu tiên sẽ được tham chiếu như sau:
player [0]. tên
Các mảng bắt đầu đánh số với phần tử 0, chứ không phải phần tử 1.
Dòng 10 trong Mảng các Cấu trúc tuyên bố một mảng gồm bốn cấu trúc điểm. Mảng được đặt tên là máy nghe nhạc. Dòng 13 đến 19 điền vào mỗi cấu trúc trong mảng. Các dòng từ 21 đến 27 hiển thị giá trị thành viên của mỗi cấu trúc.
ARRAYS OF STRUCTURES
#include int main () {struct score {tên char [32]; điểm int;}; struct điểm chơi [4]; int x; cho (x = 0; x <4; x ++) {printf ("Nhập máy nghe nhạc% d:", x + 1); scanf ("% s", trình phát [x].Tên); printf ("Nhập điểm của họ:"); scanf ("% d", & người chơi [x]. score);} puts ("Player Info"); printf ("# tNametScoren"); (x = 0; x <4; x ++) {printf ("% dt% st% 5dn", x + 1, người chơi [x]), tên người chơi [x]. score);} return (0);}
Bài tập 4 : Nhập mã nguồn từ mảng các cấu trúc vào trình soạn thảo của bạn. Xây dựng và chạy chương trình. Cố gắng giữ điểm số dưới 5 chữ số sao cho chúng xếp đúng.
Bài tập 5 : Thêm mã vào Mảng kết cấu để hiển thị cấu trúc được sắp xếp với điểm số cao nhất được liệt kê đầu tiên. Có, bạn có thể làm điều này. Sắp xếp một mảng của cấu trúc hoạt động giống như sắp xếp bất kỳ mảng khác.
Đây là một gợi ý: Dòng 27 của giải pháp sẽ như sau:
player [a] = player [b];
Bạn có thể trao đổi các phần tử mảng cấu trúc cũng như bạn có thể trao đổi bất kỳ phần tử mảng nào. Bạn không cần trao đổi các thành viên của cấu trúc biến.