在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ C語言結(jié)構(gòu)體嵌套
C語言printf()和scanf()函數(shù)
C語言strlen()函數(shù)
C語言指針
C語言ftell()函數(shù)
C語言#ifdef指令
C語言程序執(zhí)行流程
C語言歷史
C語言fprintf()和fscanf()函數(shù)
C語言#define指令
C語言#if指令
C語言將數(shù)組傳遞給函數(shù)
C語言指針的指針
C語言rewind()函數(shù)
C語言常量
C語言strcat()函數(shù)
C語言#ifndef指令
C語言continue語句
C語言注釋
C語言#include指令
C語言類型轉(zhuǎn)換
C語言strcpy()函數(shù)
C語言strlwr()函數(shù)
C語言while循環(huán)
C語言字符串
C語言strrev()函數(shù)
C語言gets()和puts()函數(shù)
C語言文件處理
C語言存儲(chǔ)分類
C語言運(yùn)算符
C語言數(shù)據(jù)類型
C語言strcmp()函數(shù)
C語言VS開發(fā)環(huán)境安裝
C語言轉(zhuǎn)義序列
C語言第一個(gè)程序
C語言變量
C語言goto語句
C語言預(yù)處理器指令
C語言指針?biāo)阈g(shù)運(yùn)算
C語言數(shù)學(xué)函數(shù)
C語言二維數(shù)組
C語言for循環(huán)
C語言命令行參數(shù)
C語言通過值和引用函數(shù)
C語言fputs()和fgets()函數(shù)
C語言do-while循環(huán)
C語言結(jié)構(gòu)體數(shù)組
C語言循環(huán)
C語言#pragma指令
C語言關(guān)鍵字
C語言#error指令
C語言聯(lián)合體
C語言特點(diǎn)
C語言break語句
C語言遞歸
C語言函數(shù)
C語言結(jié)構(gòu)體
C語言switch語句
C語言結(jié)構(gòu)體嵌套
C語言fputc()和fgetc()函數(shù)
C語言fseek()函數(shù)
C語言字符串函數(shù)
C語言if-else語句
C語言教程
C語言宏
C語言數(shù)組
C語言strupr()函數(shù)
C語言#undef指令

C語言結(jié)構(gòu)體嵌套

C語言中的嵌套結(jié)構(gòu)體表示在一個(gè)結(jié)構(gòu)體中可以使用另一個(gè)結(jié)構(gòu)作為成員。在C語言中定義結(jié)構(gòu)體嵌套有兩種方法:

  1. 通過獨(dú)立的結(jié)構(gòu)
  2. 通過嵌入式結(jié)構(gòu)

1. 獨(dú)立結(jié)構(gòu)

我們可以創(chuàng)建2個(gè)結(jié)構(gòu)體,但在主結(jié)構(gòu)中應(yīng)該使用依賴其它結(jié)構(gòu)體作為成員。我們來看看嵌套結(jié)構(gòu)體的代碼。

struct Date  
{  
   int dd;  
   int mm;  
   int yyyy;   
};  
struct Employee  
{     
   int id;  
   char name[20];  
   struct Date doj;  // 嵌套一個(gè)結(jié)構(gòu)體:Date,用于存儲(chǔ)日期
}emp1;

如上所見,doj(加入日期)是Date類型的變量。 這里doj用作為Employee結(jié)構(gòu)體中的成員。通過這樣的方式,我們可以在其他結(jié)構(gòu)體中使用Date結(jié)構(gòu)。

2.嵌入式結(jié)構(gòu)體

我們可以在結(jié)構(gòu)體內(nèi)定義結(jié)構(gòu)體,它比第一種方式需要更少的代碼。但它不能用于其它結(jié)構(gòu)中。

struct Employee  
{     
   int id;  
   char name[20];  
   struct Date  
    {  
      int dd;  
      int mm;  
      int yyyy;   
    }doj;  
}emp1;

訪問嵌套結(jié)構(gòu)體

我們可以通過Outer_Structure.Nested_Structure.member訪問嵌套結(jié)構(gòu)的成員,如下所示:

e1.doj.dd  
e1.doj.mm  
e1.doj.yyyy

嵌套結(jié)構(gòu)體示例

我們來看看C語言中嵌套結(jié)構(gòu)體的一個(gè)簡單例子。創(chuàng)建一個(gè)源代碼文件:nested-structure.c,其代碼如下 -

#include <stdio.h>  
#include <string.h>  
struct Employee
{
    int id;
    char name[20];
    struct Date
    {
        int dd;
        int mm;
        int yyyy;
    }doj;
}e1;

int main()
{
    //storing employee information  
    e1.id = 1001;
    strcpy(e1.name, "Maxsu");//copying string into char array  
    e1.doj.dd = 12;
    e1.doj.mm = 11;
    e1.doj.yyyy = 2018;

    //printing first employee information  
    printf("employee id : %d\n", e1.id);
    printf("employee name : %s\n", e1.name);
    printf("employee date of joining (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd, e1.doj.mm, e1.doj.yyyy);
    return 0;
}

執(zhí)行上面示例代碼,得到以下結(jié)果 -

employee id : 1001
employee name : Maxsu
employee date of joining (dd/mm/yyyy) : 12/11/2018