一看就会的C语言结构体(详解易懂)

前言:

室友一把王者荣耀的时间,你可以重新认识一下C语言的结构体,或者彻底搞懂C结构体!你悄悄努力!认真发光!然后惊艳!

1、结构体的声明

1.1 结构的基础知识

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

1.2结构体的声明

我们来描述一个小学生:

struct stu 
{
	char name[20];//小学生名字
	int age;//年龄
	double score;//考试分数
 };//分号不能少 

1.3 结构成员的类型

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

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

有了结构体类型以后,那如何定义变量,其实很简单。

struct stu 
{
	char name[20];//小学生名字
	int age;//年龄
	double score;//考试分数
 }p1;//声明结构体的同时,定义变量p1
struct  stu  p2;定义结构体变量p2

2. 结构体成员的访问

如何实现对结构体内部成员的访问呢,我们是通过(.)运算符来实现的.

#include <stdio.h>
struct stu 
{
	char name[20];
	int age;
	double score;
 }; 
 int main() 
 {
 	struct stu s={"张三",20,89.5};
 	printf("%s %d %lf\n",s.name,s.age,s.score);
    struct stu * p = &s;
 	printf("%s %d %lf\n",(*p).name,(*p).age,(*p).score);
 	printf("%s %d %lf\n",p->name,p->age,p->score);
 	return 0;

 }

1.我们可以直接通过(.)运算符来实现对结构体成员的访问

 	struct stu s={"张三",20,89.5};
 	printf("%s %d %lf\n",s.name,s.age,s.score);

2.我们可以通过使用指针p使其指向s的地址,而做到间接访问,不过这样会显得更加麻烦,一般不使用。

   struct stu * p = &s;
   printf("%s %d %lf\n",(*p).name,(*p).age,(*p).score);

3.我们可以通过使用 -> 操作符,使指针直接指向结构体内部成员。

struct stu * p = &s;
printf("%s %d %lf\n",p->name,p->age,p->score);

3. 结构体传参

结构体传参可以分为函数传参和结构体地址传参。】

函数传参的时候,参数是需要压栈的。

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

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

写在最后:

博主大一实力有限,内容仅供参考,欢迎大家在评论区和我交流!

以后会经常发自己的学习历程,和学习心得,感兴趣的小伙伴可以点个关注支持一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱德苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值