黎平网站开发,网站建设过时了吗,wordpress调用jquery,遵义网络科技有限公司C 语言嵌套结构体
C为我们提供了将一个结构嵌套在另一个结构中的功能#xff0c;从而创建复杂的数据类型。例如#xff0c;我们可能需要在结构中存储实体员工的地址。而地址也可以包含其他信息#xff0c;例如街道编号#xff0c;城市#xff0c;地区和密码。因此#x…C 语言嵌套结构体
C为我们提供了将一个结构嵌套在另一个结构中的功能从而创建复杂的数据类型。例如我们可能需要在结构中存储实体员工的地址。而地址也可以包含其他信息例如街道编号城市地区和密码。因此要存储员工的地址我们需要将员工的地址存储到一个单独的结构中并将该结构的地址嵌套到该结构的员工中。看下面的程序。
示例
#includestdio.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分开的结构
在这里我们创建了两个结构但是从属结构应在主结构内部用作成员。看以下示例。
示例
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嵌入式结构
嵌入式结构使我们能够在结构内部声明结构。因此它需要较少的代码行但不能在多个数据结构中使用。看以下示例。
示例
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.yyyyC嵌套结构示例
让我们来看一个简单的C语言嵌套结构示例。
示例
#includestdio.h
#includestring.hstruct Employee
{ int id;char name[20];struct Date{int dd;int mm;int yyyy; }doj;
}e1;
int main( )
{//存储员工信息e1.id101;strcpy(e1.name, Sonoo Jaiswal);//将字符串复制到字符数组中e1.doj.dd10;e1.doj.mm11;e1.doj.yyyy2014;//打印第一个雇员信息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将结构传递给函数
和其他变量一样结构也可以传递给函数。我们可以将结构成员传递给函数或者一次传递结构变量。下面的示例将结构变量employee传递给display()函数该函数用于显示雇员的详细信息。
示例
#includestdio.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);
}