结构体成员的访问和传参

文章介绍了C语言中结构体的基础知识,包括如何声明结构体,通过点操作符访问结构体成员,以及使用结构体指针。在主函数中展示了如何初始化结构体变量并打印其成员。此外,文章还讨论了在函数传参时,为避免大结构体带来的开销,通常传递结构体的地址而非整个结构体。最后,给出了两个示例函数来展示这两种传参方式。
摘要由CSDN通过智能技术生成

一、基础知识
1、声明

struct stu
{
 char name[10];
 int age;
 char sex;
 char id[20];
};

结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量比如数组,指针甚至是其他结构体
二、访问
结构体变量访问成员
结构变量的成员是通过点操作符(.)访问的,点操作符接受两个操作数,例如

#include<stdio.h>
#include<string.h>
struct stu
{
 char name[10];
 int age;
 char sex;
 char id[20];
};
int main()
{
 struct stu s1 = { "yao",77,'1',"39999" };
 printf("%s\n", s1.id);
 strcpy(s1.id, "222222");
 printf("%s\n", s1.id);
}

结构体指针访问成员

#include<stdio.h>
struct stu
 {
  char name[10];
  int age;
  char sex;
  char id[20];
 };
int main()
{
 struct stu s1 = { "yao",77,'1',"39999" };
 struct stu* p = &s1;
 printf("%d\n", p->age);
 printf("%d", (*p).age);
 return 0;
}

三、传参函数
传参的时候,参数是需要压栈的,如果传递一个结构体对象的时候,结构体过大,参数压栈系统开销比较大,所以一般传结构体的地址

#include<stdio.h>
struct stu
 {
  char name[10];
  int age;
  char sex;
  char id[20];
 };
void print1(struct stu s)
{
 printf("%d\n", s.age);
}
void print2(struct stu *p)
{
 printf("%d\n", p->age);
}
int main()
{
 struct stu s1 = { "yao",77,'1',"39999" };
 struct stu* p = &s1;
 print1(s1);
 print2(p);
 return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值