结构是不同数据类型变量的集合,以单个名称分组在一起。
结构的特点解释如下-
通过使用赋值运算符,可以将不同数据类型的所有结构元素的内容复制到其类型的另一个结构变量中。
为了处理复杂的数据类型,最好在另一个结构(称为嵌套结构)中创建一个结构。
可以将整个结构,结构的各个元素以及结构的地址传递给功能。
也可以创建结构指针。
结构声明的一般形式如下-
datatype member1; struct tagname{ datatype member2; datatype member n; };
在这里,struct是关键字。
标记名指定结构的名称。
member1,member2是数据项。
例如,
struct book{ int pages; char author [30]; float price; };
以下是本地范围内的结构的C程序-
#include<stdio.h> struct{ char name[20]; int age; int salary; char add[30]; }emp1,emp2; int manager(){ struct{ char name[20]; int age; int salary; char add[50]; }manager ; manager.age=27; if(manager.age>30) manager.salary=65000; else manager.salary=55000; return manager.salary; } int main(){ printf("输入emp1的名称:"); //gets(emp1.name); scanf("%s",emp1.name); printf("\nenter the add of emp1:"); scanf("%s",emp1.add); printf("\nenter the salary of emp1:"); scanf("%d",&emp1.salary); printf("\nenter the name of emp2:"); // gets(emp2.name); scanf("%s",emp2.name); printf("\nenter the add of emp2:"); scanf("%s",emp2.add); printf("\nenter the salary of emp2:"); scanf("%d",&emp2.salary); printf("\nemp1 salary is %d",emp1.salary); printf("\nemp2 salary is %d",emp2.salary); printf("\nmanager salary is %d",manager()); return 0; }输出结果
执行以上程序后,将产生以下结果-
输入emp1的名称:hari enter the add of emp1:hyderabad enter the salary of emp1:4000 enter the name of emp2:lucky enter the add of emp2:chennai enter the salary of emp2:5000 emp1 salary is 4000 emp2 salary is 5000 manager salary is 55000