结构体,枚举和联合体

本文介绍了C语言中的结构体,包括其作为值的集合概念,成员变量的定义,不同数据类型的组合使用,自定义数据类型structstudent的实例,以及结构体的内存对齐规则和传参方式。
摘要由CSDN通过智能技术生成

结构体

结构体的定义

结构体是一些值的集合,这些值成为成员变量。

用代码去描述学生的属性:

char name[100];

int age;

int gender;

char id[100];

float height;

如果数据类型一样,就可以使用数组来组合信息,

但是,上面描述学生时,信息所对应的数据类型并不相同,

所以使用C语言中的,自定义数据类型,即为结构体。

struct student{

char name[100];

int age;

int gender;

char id[100];

float height;

}

//成员列表

char name [128];

int age;

float height;

char id[256];

}stu,stu001,stu003;

//全局变量,默认进行初始化{“neme:"",age:0,height:0,id:""}

int main()

{

//声明变量

//局部变量 在使用之前必须初始化

struct Student stu1 = {"zhangsan",13,1,76,"s10001"};

struct Student stu2 = {"lisi",15,1,44,"s10002"};

//struct Student* p = &stul;

printf("%zd",sizeof(p));

//如何访问结构体成员,1,操作符 变量名。属性名 如:stul.id

2, 结构体变量的指针 ——>成员 如p->name

return 1;

}

//自引用

5,结构体内存对齐

如何计算?首先得掌握结构体的对齐规则 1,第一个成员在与结构体变量偏移量为0的地址处 2.其它成员变量要对齐到某个数字[对齐数]的整数倍的地址处 对齐数=编译器默认的一个对齐数与该成员大小的较小值。 T 3vs中默认值为8(gcc没有提供默认对齐数) 4,如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。

结构体的传参

把结构体当做一个变量传入函数中,在结构体传参的时候,传结构体的地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值