C语言中结构体变量

之前介绍过C语言中自带的变量类型,如字符型变量char、整型变量int、浮点型变量flaot等等。

今天介绍一下C语言中的自定义变量。

1、什么是结构体呢?

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

比如说,如何确定图书馆中的某一本书,一个班级里的某一个同学呢?在我们想用变成对他们的信息进行录入保存时,如何去创建一个这样的变量呢?就是要将这种事物的特征汇聚起来成为一个集合体,让人看到就知道表述的是什么。如一本书,我们要知道它的名字、作者等;一个学生要知道他(她)的姓名、性别、出生年月。

2、结构体的声明

struct tag
{
member-list;
}variable-list;

这里struct是创建一个结构体的关键字tag是结构体的名称member-list是结构体成员variable-list是创建出的结构体变量

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

例:

struct Stu
{
    char name[20];//名字
    int age;//年龄
    char sex[5];//性别
    char id[20];//学号
}; //分号不能丢

这里声明一个名为Stu的结构体变量,结构体成员有姓名name、年龄age、性别sex、学号id

这样,当我们想要确定某个人的时候就方便多了

3、结构体类型的初始化

根据上述

struct Stu
{
    char name[20];
    int age;
    char sex[5];
    char id[20];
}stu1,stu2;

struct stu3;

这两种都可以用来创建结构体变量

(1)、在创建结构体变量类型时在{}外面写上想要创建的变量名,创建多个时需要用‘,’隔开

(2)、struct 结构类型名  变量名

对变量内容的初始化

struct Stu
{
    char name[20];
    int age;
    char sex[5];
    char id[20];
}stu1,stu2;

struct Stu stu3={"zhangsan",12,"male","123456789"};//按创建结构体类型时的顺序输入



4、结构体成员的访问

结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数
 

同样我们可以通过结构体成员访问来改变结构体成员的值

这也就意味着,我们也可以通过访问结构体变量来给结构体赋值


有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针

5、结构体传参

来看一段代码

这里创建两个打印函数,print1使用结构体变量作为参数,print2使用地址作为参数

得出的结果是一样的,那么用哪种更好呢?

答案是地址传参

因为:

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值