理解结构体的最基本使用

本文介绍了C语言中的结构体和共用体,包括它们的定义、初始化、遍历和调用。通过示例展示了如何定义结构体数组并进行排序。同时,对比了结构体和共用体的区别,强调了结构体是同时存储所有成员,而共用体只能存储一个成员。最后提供了一个结构体数组的排序案例,根据学生姓名进行排序。
摘要由CSDN通过智能技术生成

 结构体:是 C 编程中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。

为了定义结构,必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

结构变量,定义在结构的末尾,最后一个分号之前,可以指定一个或多个结构变量;

struct add {
      char b[5];
      int a;
      char c

 )sum;

下图为结构体的初始化、遍历、调用实例

 

#include <stdio.h>
  8 
  9 struct ai
 10 {
 11     char b[5];
 12     int a;
 13     char c;
 14 };//全局变量初始化
 15 int main(int argc, char *argv[])
 16 {
 17     int i;
 18     struct ai stu[3]={{"adf",4,'c'},{"abc",6,'r'},{"zcv",8,'t'}};//数
    组的初始化
 19     for(i=0;i<3;i++)//遍历
 20     {
 21   //  printf("%s\n",stu[i].b);//调用
 22  //   printf("%d\n",stu[i].a);
 23       printf("%d\n",stu[i].c);
 24     }
 25     return 0;
 26 }

结构体和共用体的区别:

1、共用体存放成员的方式,只能一个成员一个成员的存放,结构体是所有成员一起放;

2、共用体大小是最大成员数据类型的字节大小,但是也要遵循对齐原则

下图为结构体的使用案例:

定义一个结构体数组,放一些学生进去,根据学生名字排序:

#include <stdio.h>
  8 #include <string.h>
  9 int main(int argc, char *argv[])
 10 {
 11     struct stu{
 12         int age;
 13         char sex[32];
 14         char name[32];
 15     };
 16     struct stu student[5]={{18,"men","zhangsan"},{20,"men","lulu"},{19,"men","  wangwu"},{45,"men","zhaoli"},{67,"men","lisa"}};
 17     int i,j;
 18     struct stu temp;
 19     for(i=0;i<5;i++)
 20     {
 21         for(j=0;j<4;j++)
 22         {
 23             if(strcmp(student[j].name,student[j+1].name)>0)
 24             {
 25                 temp=student[j];
 26                 student[j]=student[j+1];
 27                 student[j+1]=temp;
 28             }
 29         }
 30     }
 31     for(i=0;i<5;i++)
 32     {
 33         printf("%d--%s--%s\n",student[i].age,student[i].sex,student[i].name);
 34     }
 35 
 36 
 37     return 0;
 38 }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值