C语言初级结构体详解

  数据经常以成组的形式存在,我们通常会用到数组,而当这些值的类型不同时,数组便无能为力了,这是就需要结构体来进行存储,在C语言中,结构体可以把不同类型的数组存储在一起。

  ## 结构体基础知识

  结构体和数组一样,也是一些值的集合,这些值成为它的成员,但一个结构体的各个成员可能具有不同的类型。
  由于结构体成员的类型可能不同,所以并不能像数组一样通过下标进行访问,但是,结构体中的每个成员都有自己的名字,它们可以通过名字访问。

  ### 结构体声明

  在声明结构体时,必须列出它包含的所有成员,这个列表包括成员的类型和名字。

struct Stu
{
	char name[20];
	int age;
	char sex[10];
}S;

  这便创建了一个名S的struct Stu类型的结构体对象,结构体允许多个对象使用同一个结构体类型那么当需要创建多个同类型的对象时该怎么使用呢?

struct Stu
{
	char name[20];
	int age;
	char sex[10];
}S,A,B,C;

  需要用一个类型创建多个对象时,在对象名字后面加逗号,后跟需要继续创建的对象名字即可

  ###结构体成员

  结构体成员可以是标量、数组、指针甚至是其他结构。

struct Stu
{
	char name[20];
	int age;
	char *p;
}S;

  一个结构成员的名字可以和其他结构的成员名字相同,成员的访问方式会允许你指定任何一个成员而不至于产生歧义。

  ###成员结构的访问

  结构体变量的成员是通过点(.)操作符来进行访问的。点操作符接受两个操作数,左边的操作数就是结构体变量的名字,右边的操作数就是需要访问的成员的名字。这个表达式的结果就是指定的成员。

  如下代码所示:

struct Stu
{
	char name[20];
	int age;
	char sex[10];
}S;
int main()
{
	S.age = 10;
	printf("%d",S.age);
	return 0;
}

  名字为age的成员,所以S.age就表示这个成员,你可以对他进行一系列操作。

  ###结构体成员的间接访问

  如果你拥有一个指向结构体的指针,该如何访问它的成员呢?
首先要对指针执行间接访问操作,使你获得这个结构体,然后用点操作符来访问它的成员。但是,这里需要注意的一点是,点操作符的优先级高于间接访问操作符,所以需要在表达式中使用括号(),确保简介访问首先执行。
  可以用(*p).age来进行访问

  同时C语言提供了另一种更为方便直观的间接访问结构体内成员的操作符   ” -> “
  可以通过p->age的方式来访问。
代码如下:

struct Stu
{
	char name[20];
	int age;
	char *p;
}S;
int main()
{
	struct Stu * p=&S;
	printf("%d",(*p).age);
	printf("%d", p->age);
	return 0;
}

  个人感觉C语言的结构体为面向对象的语言打下了不可磨灭基础,能够很好理解结构体的概念与形式,就可以相对容易的学习类和对象的概念。这里只做初级入门时所用到功能的详解,结构体内所涵盖的知识还有很多,还请各路大神多多指教。

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值