Linux学习-结构体

本文详细介绍了C/C++语言中结构体的定义、变量声明、初始化方法,以及结构体成员的访问、内存存储、对齐规则、传参方式(包括地址传参和结构体数组)等内容,有助于程序员掌握结构体的基础运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

结构体

结构体类型的定义

结构体变量的定义

结构体变量初始化

结构体成员变量的访问

结构体的存储

结构体传参

结构体数组


结构体

结构体类型的定义

struct   结构体名

{

        数据类型1  成员变量1;

        数据类型2  成员变量2;

        数据类型3  成员变量3;

        .........          .......

};

说明:结构体中数据类型可以是基本数据类型和构造数据类型都可以;

            先定义才能再进行初始化;

结构体变量的定义

数据类型  变量名;

数据类型:struct   结构体名;这两个才叫结构体的数据类型

结构体指针:数据类型 结构体名 *变量名

结构体变量初始化

全部初始化

局部初始化:

struct  student stu = {

        .name = "lisi"

        .score = 90,

}

结构体成员变量的访问

对结构体整体无法操作,只能对单个进行操作。

. (点)  :结构体变量类型访问成员变量使用;

->(箭头) :结构体指针类型访问成员变量使用;

整型类型由成员变量类型决定

内存置零,用meset将从s地址开始的s结构体大小的空间置零,就可以完成初始化

赋值也只能逐个赋值;

结构体的存储

结构体的大小是结构体内部的数据大小的集合

内存对齐,概念图解

因为32位CPU一次性只能取32位,一个字节8位,就是四个字节,当需要取int的时候不在一次取完的四字节就会重新开一个四字节,保证数据的读取方便。所以图2的结构体按照一下对齐方式为44个字符.

char  按照一字节对齐

short  按照两字节对齐

int      按照四字节对齐

double    按照四字节对齐

因此结构体整体大小必须时最大基本类型长度的整数倍。

结构体传参

函数传输结构体参数

结构体作为参数和返回值的传参如下图

结构体指针地址传参程序如下图

在赋值传参和地址传参中,地址传参更为方便,因为如果结构体过大,复制传参就会开辟更大的存储空间,但是地址传参的话就只需要传输8字节地址就可以

结构体数组

struct student s[5]

存储地址有序性,而且每一个元素都是student结构类型;结构体名必须是常量

构造结构体数组和访问如下图:

结构体数组传参

结构数组传参和其他数组传参相似具体如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值