浅谈结构体

本文介绍了C语言中的结构体基础知识,包括结构体成员的类型(如标量、数组、指针、结构体)及访问方式(点操作符和指针操作符->)。讨论了结构体作为函数参数的传递,建议优先选择传递结构体地址以避免大结构体导致的性能下降。文章以实例展示了结构体的声明、初始化和成员访问,并提供了结构体传参的代码示例。
摘要由CSDN通过智能技术生成

前言

大家好,我们又见面了。本章来讲讲结构体,本次只是入门篇,没什么难点,所以本篇文章内容较少,我就讲讲一些基础的东西,后面还会有结构体进阶,可以期待一下。

一.结构成员的类型 

结构的成员可以是标量、数组、指针,甚至可以是结构体,如下面代码

typedef struct stu
{
	int a;
	char b[10];
	int* p;
	struct c;
}stu;

二.结构体成员的访问

结构体变量的成员是通过点操作符(.)来访问的。点操作符接受两个操作数,就如上面那串代码,我们该如何访问stu的成员名呢。看下面代码。

    struct stu s;
	strcpy(s.b, "abcde");
	s.a = 10;

 结构体指针访问指向变量的成员,有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针,这时候我们就可以通过->来访问成员。如下面代码

三.结构体传参 

直接上代码吧,这个传参之前十分详细的讲过,这个就和之前那差不多。

struct stu
{
	int data[1000];
	int num;
};
struct stu s = { {1,2,3,4},1000 };
void print1(struct stu s)
{
	printf("%d\n", s.num);
}
void print2(struct stu* ps)
{
	printf("%d\n", ps->num);
}
int main()
{
	print1(s);
	print2(&s);
	return 0;
}

 传结构体好呢,还是传地址好呢?

跟之前一样,首选还是传地址,为什么呢?

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

总结

本次浅谈结构体讲到这就结束了,本文介绍了结构体传参,结构体成员的访问,和结构体类型,要记住结构体传参的时候,要传结构体的地址。都看到这了,要个点赞加关注不过分吧

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值