结构是不同数据类型变量的集合,在一个名称下组合在一起。
C编程语言中结构的特点如下 -
可以使用赋值运算符将不同数据类型的所有结构元素的内容复制到其类型的另一个结构变量中。
为了处理复杂的数据类型,最好在另一个结构中创建结构,称为嵌套结构。
可以将整个结构、结构的单个元素和结构的地址传递给函数。
可以创建结构指针。
结构声明的一般形式如下 -
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> #include<string.h> struct tag{ char name[10]; int rno; }; typedef struct tag node; node s[5]; sort(int no){ int i,j; node temp; for(i=0;i<no-1;i++) for(j=i+1;j<no;j++) if(strcmp(s[i].name,s[j].name)>0){ temp=s[i]; s[i]=s[j]; s[j]=temp; } } void main(){ int no,i; fflush(stdin); printf("输入学生人数:"); scanf("%d",&no); for(i=0;i<no;i++){ printf("输入名称:"); fflush(stdin); gets(s[i].name); printf("输入卷:"); scanf("%d",&s[i].rno); } sort(no); for(i=0;i<no;i++){ printf("%s\t",s[i].name); printf("%d\n",s[i].rno); } }输出结果
执行上述程序时,会产生以下结果 -
输入学生人数:5 输入名称:Priya 输入卷:3 输入名称:Hari 输入卷:5 输入名称:Pinky 输入卷:7 输入名称:Lucky 输入卷:1 输入名称:Krishna 输入卷:2 Hari 5 Krishna 2 Lucky 1 Pinky 7 Priya 3