c语言学习----结构体章节

一、结构体

结构体是一种用户自定义的数据类型,用于组合不同类型的数据成员

1.定义结构体

struct<结构体名称>

{

    <数据类型1><成员名称1>;

    <数据类型2><成员名称2>;

      ......//更多成员声明

};

struct Person
{
   char name[20];
   int age;
   float height;
};

2.创建结构体变量

定义结构体后,可以通过该结构体创建一个变量

struct Person person1;

3.访问结构体成员

使用成员访问符  "." 来访问结构体中的成员

strcpy (person1.name,"zs");
person1.age=15;
person1.height=185.6;

4.结构体作为函数参数

结构体可以作为函数参数传递,使得函数能够操作和修改整个结构体

void printPerson(struct Person p)
{
   printf("Name:%s,Age:%d,Height:%lf")
}

5.结构体指针

使用指向结构体的指针可以更灵活地操作和传递结构体

struct Person*p;
p=&person1;
printf("Name:%s\n",p->name);

6.嵌套结构体

结构体可以包含其他结构体作为其成员

struct Address
{
   char city[20];
   char street[20];
};
struct Strudent
{
   char name[20];
   int id;
   struct Adress adress;
};

7.结构体数组

结构体数组是由相同类型的结构体元素组成的数组

struct Person people[10];
strcpy (people[0].name,"lisi");
people[0].age=18;

二、联合体

       联合体(union)是一种特殊的数据类型,它允许在同一个内存位置存储不同的数据类型。联合体可以包含多个成员,联合体中的所有成员共享同一块内存。如果联合体中有一个成员被赋值,其他成员的值将被覆盖

union MyUnion {
    int a;
    float b;
    char c;
};

三、枚举类型

      枚举类型用于定义一组命名的常量,可以提高代码的可读性。这些常量通常代表某种特定的状态、选项或值。

enum Weekday {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};
enum Weekday today = Friday;

四、位段

精确地控制每个字段占用的位数。通常情况下,位段用于节省内存空间, 帮助优化内存使用,并且可以提高代码的可读性和可维护性。

struct {
    unsigned int Male : 1; // 占用1位,用于表示性别
    unsigned int age : 7;    // 占用7位,用于表示年龄
} person;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值