C 語言基礎教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結構體

C 語言文件

C 其他

C 語言參考手冊

C 語言嵌套結構體

C為我們提供了將一個結構嵌套在另一個結構中的功能,從而創(chuàng)建復雜的數(shù)據(jù)類型。例如,我們可能需要在結構中存儲實體員工的地址。而地址也可以包含其他信息,例如街道編號,城市,地區(qū)和密碼。因此,要存儲員工的地址,我們需要將員工的地址存儲到一個單獨的結構中,并將該結構的地址嵌套到該結構的員工中??聪旅娴某绦?。

#include<stdio.h>
struct address 
{
    char city[20];
    int pin;
    char phone[14];
};
struct employee
{
    char name[20];
    struct address add;
};
void main ()
{
    struct employee emp;
    printf("輸入員工信息?\n");
    scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);
    printf("打印員工信息....\n");
    printf("姓名: %s\n城市: %s\nP編號: %d\n電話: %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);
}

輸出結果

輸入員工信息?

Arun            

Delhi           

110001       

1234567890    

打印員工信息....   

姓名: Arun      

城市: Delhi  

編號: 110001

電話: 1234567890

該結構可以通過以下方式嵌套。

  1. 通過單獨的結構

  2. 通過嵌入式結構

1)分開的結構

在這里,我們創(chuàng)建了兩個結構,但是從屬結構應在主結構內部用作成員。看以下示例。

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

可以看到,doj是date類型的變量。這里,doj被用作Employee結構中的成員。這樣,我們可以在許多結構中使用Date結構。

2)嵌入式結構

嵌入式結構使我們能夠在結構內部聲明結構。因此,它需要較少的代碼行,但不能在多個數(shù)據(jù)結構中使用??匆韵率纠?。

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

訪問嵌套結構

我們可以通過Outer_Structure.Nested_Structure.member訪問嵌套結構的成員,如下所示:

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

C嵌套結構示例

讓我們來看一個簡單的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( )
{
   //存儲員工信息
   e1.id=101;
   strcpy(e1.name, "Sonoo Jaiswal");//將字符串復制到字符數(shù)組中
   e1.doj.dd=10;
   e1.doj.mm=11;
   e1.doj.yyyy=2014;

   //打印第一個雇員信息
   printf( "員工ID : %d\n", e1.id);
   printf( "員工姓名 : %s\n", e1.name);
   printf( "員工加入日期 (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd,e1.doj.mm,e1.doj.yyyy);
   return 0;
}

輸出:

員工ID : 101
員工姓名 : Seagull Ali
員工加入日期 (dd/mm/yyyy) : 10/11/2014

將結構傳遞給函數(shù)

和其他變量一樣,結構也可以傳遞給函數(shù)。我們可以將結構成員傳遞給函數(shù),或者一次傳遞結構變量。下面的示例將結構變量employee傳遞給display()函數(shù),該函數(shù)用于顯示雇員的詳細信息。

#include<stdio.h>
struct address 
{
    char city[20];
    int pin;
    char phone[14];
};
struct employee
{
    char name[20];
    struct address add;
};
void display(struct employee);
void main ()
{
    struct employee emp;
    printf("輸入員工信息?\n");
    scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);
    display(emp);
}
void display(struct employee emp)
{
  printf("打印員工信息.....\n");
  printf("%s %s %d %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);
}
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清