结构体和结构体指针

本文详细介绍了C语言中的结构体,包括如何声明结构体模板、定义结构变量、访问结构成员以及结构体的初始化。此外,还讨论了结构体指针的使用,如何通过指针访问结构成员,并展示了结构数组的声明。最后,提到了结构体在函数参数传递中的应用,以及结构体指针在表示复杂数据结构中的角色。
摘要由CSDN通过智能技术生成

结构体

  1. 建立一个结构模板
  2. 声明合适该结构的变量
  3. 访问结构变量的各个部分

建立结构声明

结构声明(structure declaration):描述模板

结构模板:标记是book

struct book {
	char title[MAXSIZE];
	char author[MAXSIZE];
	float value;
};

定义结构变量

把library声明成一个book类型的变量

struct book library;

简化

struct book {
	char title[MAXSIZE];
	char author[AXAUTL];
	float value;
}library;

访问结构成员

结构成员符( . )
取地址: &library.float

结构初始化

指定初始化器(designated initializer):

  • 使用点运算符和成员名标定特定的元素。

  • 可以按照任意顺序使用指定初始化器。

  • 在指定初始化器后面的普通初始化器, 为指定成员后面的成员提供初始值。

  • 花括号中的初始化列表进行初始化,各初始化项用逗号隔开。

structu book surprise = { .value = 10.99};

指向结构的指针

  1. 结构不能作为参数传递给函数,可以传递结构指针
  2. 用于表示数据的结构中包含指向其他结构的指针。

指向guy结构类型的指针

struct guy * him;

指向fellow结构体

him = &fellow;

声明和初始化结构指针

声明指针,和声明其他指针一样。

struct guy * him;

关键字struct,结构标记guy,这个声明未创建一个新的结构,him现可以指向任意现有的guy类型的结构。结构名不是结构的地址,记得加上取地址符:&

him = &barney

用指针访问成员

him == &fellow
//使用结构名访问:fellow.income

1.使用->运算符

him->income
him==&fellow<-->*him==fellow

声明结构数组

数组名:library
该数组中的每一个元素都是struct book类型的结构变量。

struct book library[MAXSIZE]

library是一个结构数组,意味着fellow[0]是一个结构。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值