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

C语言 结构体

1.结构体的声明

1.1结构的基础知识

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

复杂对象:

人:名字+电话+性别+身高

书:书名+作者+定价+书号

复杂对象的描述就会使用到,结构体

1.2结构体的声明

struct tag
{
	member-list;
}variablelist;
//人
//声明的结构体类型struct peo
struct peo
{
    //成员变量
	char name[20];
	char tele[12];
	char sex[5];//女 男 保密
	int high;
};


int main()
{
	return 0;
}

1.3结构成员的类型

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

struct peo
{
	char name[20];
	char tele[12];
	char sex[5];//女 男 保密
	int high;
};
struct st
{
	struct peo p;
	int num;
	float f;
};

1.4结构体变量的定义和初始化

定义:

初始化:

2.结构体成员的访问:

void printf2(struct peo* sp)
{
	printf("%s %s %s %d\n", sp->name, sp->tele, sp->sex, sp->high);//结构体指针->成员变量
}
void printf1(struct peo p)
{
	printf("%s %s %s %d\n", p.name, p.tele, p.sex, p.high);//结构体指针.成员变量
}

3.结构体传参

struct s
{
	int data[1000];
	int num;
};

struct S s = { { 1, 2, 3, 4 }, 1000 };
//结构体传参
void print1(struct S s)
{
	printf("%d\n", s.num);
}

//结构体地址传参
void printf2(struct S* ps)
{
	printf("%d\n", ps->num);
}

int main()
{

	printf1(s);//传结构体
	printf2(&s);//传地址

	return 0;
}

上面的printf1和printf2函数那个好用

答案是:首选printf2函数

原因:函数传参时,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,所以会导致性能的下降。

结论:

结构体传参的时候,要传结构体的地址


http://www.kler.cn/a/513666.html

相关文章:

  • WPS按双字段拆分工作表到独立工作簿-Excel易用宝
  • 系统思考—转型
  • 【高阶数据结构】布隆过滤器(BloomFilter)
  • JS宏进阶:正则表达式的使用
  • SDL2:PC端编译使用 -- SDL2多媒体库使用音频实例
  • ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档
  • 2024年度总结-CSDN
  • 图片专栏——修改分辨率
  • SSTI注入
  • 【vim】vim编辑器如何设置行号
  • 【2024年终总结】我与CSDN的一年
  • 5、原来可以这样理解C语言_数组(5)sizeof 计算数组元素个数
  • 数字图像处理:实验五
  • Golang的文件处理优化策略
  • WPF 实现动态属性绑定与动态绑定详解
  • springboot 配置多数据源以及动态切换数据源
  • Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
  • 利用大型语言模型在量化投资中实现自动化策略
  • 洛谷P2853 [USACO06DEC] Cow Picnic S
  • 如何查看某用户的Git提交数
  • 【c/c++】内存对齐
  • WebSocket知识点笔记(一)
  • 公有云环境下如何管理IP地址
  • 探索云原生可观测性:技术与团队协作的深度结合
  • Java 资源管理教程:掌握 close 方法、Cleaner 类与 Runtime.addShutdownHook
  • Python 电脑定时关机工具