当前位置: 首页 > article >正文

结构体通讲——数据结构解惑

文章目录

  • 一.第一种写法
  • 二.第二种
  • 三.第三种
  • 四.->

结构:一个变量里包含很多变量

一.第一种写法

int a[];//一个数组中可以包含许多相同类型的数组
想让一个数组中包含很多不同类型的变量用结构

struct 
{
	int a;
	char b='c';	
}t,ti;//t和ti拥有了前面所定义的结构
int main()
{
	t.a;//.:访问符,对t这个变量的a让它=10
	ti.a=2132;
	ti,b='#';
}

但是要再定义一个这个结构的变量时需要再重新定义

int mian()
{
	struct 
	{
		int a;
		char b='c';	
	}ki;
}//太麻烦

二.第二种

struct person//是一个类型
{
	int num;
	char name[10];
};

想使用的话需要定义一个变量

struct person p;//定义语句,sruct person是一个类型
//p:变量,p具有了person的结构
//person.num不行,因为person不是变量
//p.num可以,p是变量

若想把p的num输出出来可以给他一个定义

p.num=20;
printf("%d ",p.num);

在这里插入图片描述
如果要放字符串,不可以:
p.name=“jedxhu”;
字符串是一个数组,但不可以这么赋值给name,因为name是一个已经定义好的一个变量,所以不能再给他这个字符串
如不可以:
char a[10];
a=“secxdwui”;

不可以定量的值赋值给他,因为只可以在初始化的时候使用
若要写的话必须初始化给他写上

char[10] a="wdgqyi";

如何让他合法?

struct person
{
	int num;
	char name[10]=“jsvcdy”;//
};

但是不能在int main ()里修改成别的值
所以必须在初始化的时候写
也可以:

int main()
[
	struct person p={28,"sguix"};
	//初始化成功,大括号写在同一行这是一种初始化写法
	//这里初始化了就不能再在结构里初始化了
}

三.第三种

typedef struct
{
	int num;
	int a[100];
}Data;//是一种类型,不是变量
int main()
{
	Data p={19{123}};//初始化p。p:Data类型的变量,p就具有了Data的结构
	p.a[1]=10;
	printf("%d"p.a[1]);

1.在这里插入图片描述
2.
在这里插入图片描述

四.->

Data *hi;//设置一个Data结构的类型的指针
hi =&h;//指针指向取h的地址,然后赋给hi这个指针

如果想要获得hi这个指针对应的这个值hi的a第二个变量

printf("%d",*hi).a[2]);//解指针
//从里向外剥壳

在这里插入图片描述
上面的有点麻烦,->起到简化作用

hi->a[2];//他指向的结构对应的访问
//p->xxx等价于(*p).xxx

->前面必须是一个指针,指针使用箭头起到解指针再访问的作用


http://www.kler.cn/news/354300.html

相关文章:

  • 在线考试系统的现代化解决方案:Spring Boot与JavaWeb
  • 【系统集成中级】OSI 七层模型
  • web前端面试中拍摄的真实vue面试题
  • 考研论坛设计小程序ssm+论文源码调试讲解
  • 设计一个支持自动化测试执行的测试框架
  • 盘古信息:智能仓储管理赋能企业降本增效
  • 【前端】Matter:交互与碰撞
  • 关于武汉芯景科技有限公司的限流开关芯片XJ6288开发指南(兼容SY6288)
  • C++ 函数的参数传递
  • MAC 电脑Office power point编辑的时候,显示“某些字体无法随演示文稿一起保存,仍然要保存演示文稿吗?”
  • 深入探讨B+树索引的基本概念、工作原理以及在MySQL中的应用
  • k8s系列-Rancher 上操作的k8s容器网络配置总结
  • 07 django管理系统 - 部门管理 - 搜索部门
  • 流体力学分析的利器——X-Flow软件在中国的官方代理商
  • 【可答疑】基于51单片机的智能衣柜(含仿真、代码、报告、演示视频等)
  • CSS 入门
  • SQL注入总结
  • OceanBase 从架构到实战应用的技术探索
  • centos 8.4学习小结
  • Cesium 黑夜效果