C语言:结构体详解

本文详细介绍了C语言中的结构体,包括结构体的声明、特殊的不完全声明、结构体的自引用及其在链表中的应用、结构体变量的定义与初始化、内存对齐的规则以及如何修改默认对齐数。此外,还讨论了结构体作为函数参数的传递方式,并提供了一个计算结构体成员偏移量的百度面试题参考。
摘要由CSDN通过智能技术生成

今天详解一下结构体

结构体在C语言中不同于内置类型只能解决单一对象,它更加倾向于解决有着不同信息的复杂集合体。

所以C语言添加了一种集合体描述复杂对象的集合:结构体

目录

1.结构体的声明

2.特殊的声明

3.结构体的自引用

4.结构体变量的定义和初始化

5.结构体的内存对齐

 6.修改默认对齐数

7.结构体传参


1.结构体的声明

 

一个结构体的声明需要四部分:关键字、标签、结构体成员列表、结构体变量列表。

关于结构体变量的声明大家可以在创建结构体时顺便声明,也可以在mian函数中对其声明,至于区别也就是全局变量与局部变量的区别。

当然有人会说,每次要使用就要写一遍结构体关键字和标签,会很麻烦,当然也有一种可以偷懒的办法,使用typedef对结构体重命名。

 

2.特殊的声明

在对于结构体的声明中还有一种特殊的声明,不完全声明(匿名结构体声明)

 

这种结构体声明时最好将变量声明并初始化,不然会报错,而且只能使用一个,两个不同的struct结构体按这种写法也会被认为是一个。

同时,匿名结构体与匿名结构体的指针间接等级是不同的!

3.结构体的自引用

从字面意思上看是一个结构体的对另一个结构体引用,类似函数调用。

我这里只能说,虽然类似但还是不同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值