VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

C Cơ Bản

Ngôn ngữ lập trình C là gì? Lịch sử của C Các tính năng của C Cài đặt môi trường lập trình C Chương trình C đầu tiên Flow của chương trình C Biến trong C Các kiểu dữ liệu trong C Ép kiểu trong C Từ khóa trong C Các toán tử trong C Comment trong C Các hằng số trong C printf và scanf trong C Ký tự đặc biệt trong C Xử lý lỗi trong C Tệp Header trong C Toán tử sizeof trong C

Câu Lệnh Điều Khiển C

Mệnh đề if-else Mệnh đề switch Vòng lặp for Vòng lặp while Vòng lặp do-while Lệnh Break Lệnh Continue Lệnh Goto

Con Trỏ

Con trỏ (pointer) trong C Con trỏ trỏ tới con trỏ Con trỏ và mảng trong C Quản lý bộ nhớ trong C

Structure & Union

Structure trong C Mảng của structure trong C Structure lồng nhau trong C Union trong C

C Math

Hàm math cơ bản trong C

C Function

Hàm trong C Hàm do người dùng định nghĩa Các kiểu hàm trong C Đệ quy trong C Call by value Call by reference

C Array

Mảng (array) trong C Mảng 2 chiều trong C Truyền mảng vào hàm
Chuỗi (String) Trong C
File I/O Trong C
Bài Tập C Có Lời Giải

Bài Học Bổ Sung

Enumeration (enum) trong C Preprocessors trong C Bảng ASCII
1 / 3
❮ ❯

Struct trong C


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

Recent Updates

Sắp Tết 2024 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2024?LinkedList trong javaArrayList trong javaXử lý duplicate trong SQLPhím tắt hay dùng trong ExcelBảo mật tập tin ExcelDịch trang tính trong ExcelIn trang tính trong ExcelHàm VLOOKUP trong ExcelĐối tượng đồ họa trong ExcelSử dụng macro trong ExcelSử dụng Templates trong ExcelSử dụng chủ đề (theme) trong Excel

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml