C语言相关(六)

本文深入探讨了结构体的概念,如何定义和初始化结构体,以及结构体在C语言中的使用方法。通过实例讲解了结构体成员的访问方式,包括指针的使用,以及结构体数组的创建与初始化过程。此外,还分析了结构体的内存对齐原则及其对结构体大小的影响。

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

结构体

在定义一个变量时 次变量拥有诸多 属性 我们需把属性写进去 则不能用普通的定义变量来定义它 如:在写学生管理系统时 学生具有多种属性 性别 年龄等等
这时我们就需要结构体了。
定义:

struct Student
{
	char name[10];
	int age;
	char sex[5];
}st;

注意 结构体内的成员 不能对其进行初始化
调用成员:

void Show(Student *p)
{
	printf("%s,%d,%s",p->name,p->age,p->sex);
	/printf("s,%d,%s",(*p).name,(*p).age,(*p).sex); //指向符也自带解引用
}

用指针调用的话 使用 ->
非指针使用 . 如:a.name

 //结构体数组
 Student arr[]={{"liubei",99,"man"},{"caocao",18,"man"}};

结构体的大小
结构体的大小(内存对齐//整除)

struct A
{
	char b;//1个字节
	int a;//4个字节
};//8个字节
struct B
{
	char a;//1+1      
	short b;//2   
	int c;//4
};//8
struct C
{
	char a;//1+3
	int b;//4
	short c;//2+6
	double d;//8
};//24
struct E
{
	int a;//4
	char b;//1+3
};//8

typedef

typedef 自定义一种类型
如:
typedef int *PP;//==》由这种变量提升为类型
其中 *pp不变量 而是一种新的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值