VietTuts

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

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • Python
  • PHP
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Cấu trúc dữ liệu và giải thuật
    • Học lập trình C#
    • 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

Structure lồng nhau trong C


Mảng của structure trong C
Union trong C

Như bạn đã biết 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). Nên bạn hoàn toàn có thể sử dụng structure bên trong structure khác, nó được biết đến như structure lồng nhau trong C.


Có 2 cách để định nghĩa cấu trúc lồng nhau trong C:

  1. Theo cấu trúc riêng biệt.
  2. Theo cấu trúc nhúng.

Nội dung chính

  • 1. Cấu trúc riêng biệt
  • 2. Cấu trúc nhúng.
  • Truy cập cấu trúc lồng nhau
  • Ví dụ về cấu trúc lồng nhau trong C

1. Cấu trúc riêng biệt

Ví dụ, chúng ta tạo ra 2 cấu trúc và cấu trúc phụ thuộc được sử dụng bên trong cấu trúc chính như một thành viên.

struct Date {
    int day;
    int month;
    int year;
};
struct Employee {
    int id;
    char name[20];
    struct Date birthday;
} emp1;

Trong ví dụ trên, cấu trúc birthday được sử dụng như một thành viên của cấu trúc Employee.



2. Cấu trúc nhúng.

Cấu trúc nhúng là viêc định nghĩa cấu trúc bên trong một cấu trúc khác và nó cũng là một trường hợp của cấu trúc (structure) lồng nhau trong C.

Ví dụ:

struct Employee {
    int id;
    char name[20];
    struct Date {
        int day;
        int month;
        int year;
    } birthday;
} emp1;

Truy cập cấu trúc lồng nhau

Bạn có thể truy cập các thành viên của cấu trúc lồng nhau bởi Outer_Structure.Nested_Structure.member như dưới đây:

emp1.birthday.day
emp1.birthday.month
emp1.birthday.year


Ví dụ về cấu trúc lồng nhau trong C

#include <stdio.h>
#include <string.h>

/**
 * dinh nghia cau truc Employee
 */
struct Employee {
    int id;
    char name[20];
    struct Date {
        int day;
        int month;
        int year;
    } birthday;
} e1;

/**
 * ham main
 */
int main() {
    // luu tru thong tin employee
    e1.id = 101;
    strcpy(e1.name, "Vinh Tran"); // chuyen doi chuoi thanh mang char
    e1.birthday.day = 10;
    e1.birthday.month = 11;
    e1.birthday.year = 2001;

    // hien thi thong tin sinh vien ra man hinh
    printf("employee id: %d\n", e1.id);
    printf("employee name: %s\n", e1.name);
    printf("employee birthday (dd/mm/yyyy): %d/%d/%d\n", e1.birthday.day,
            e1.birthday.month, e1.birthday.year);
    return 0;
}

Kết quả:

employee id: 101
employee name: Vinh Tran
employee birthday (dd/mm/yyyy): 10/11/2001

Mảng của structure trong C
Union trong C

Recent Updates

Dãy số Fibonacci trong C#Bài tập C# có lời giảiToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8HttpClient trong Angular 7Service trong Angular7Directive trong Angular 7Component trong Angular 7Hướng dẫn lập trình Angular 7 với trình soạn thảo Visual Studio CodeCài đặt Angular 7Các lệnh Angular CLITổng hợp các thẻ mới trong HTML5

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
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

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

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

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