C语言--结构体初阶

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

结构体类型的声明

struct Peo     //结构体类型的类型名

{

       char name[20];

       char tele [12];

}p1,p2;     //通过结构体类型创建的结构                  //体变量(全局),也可以不                    //在这里直接创建

 

结构体初始化

struct Peo

{

      char name[20];

      char tele[12];

}

int main()

{

    struct Peo p4={"zs","17727738337"}

   return 0;

}

结构体成员访问

(1) 创建两个结构体类型

d0e2ddc2280b443a8e2016607140d835.jpg

 d220990716a3408889eaf36ac3a62090.jpg

 

访问结构体成员的两种方法

(1) 通过变量名访问成员

62bdb412f15f4ad3a318af351379b722.jpg

 当访问结构体嵌套时

88323302368b4defa8a3a00020f8405a.jpg

 

(2) 通过结构体指针访问成员

5146ab6fa319479588bd586bf4577fa2.jpg

 当访问结构体嵌套时

7323535898d242108cafd18e42fb7e1c.jpg

 

结构体传参

第一种情况传的是结构体变量本身,此时要用一个相同类型的结构体变量(行参)来接收,行参是实参的一份临时拷贝,需要在内存中申请一块空间,然后通过变量名.成员来访问

第二种情况传的是结构体变量的地址,此时需要一个结构体指针来接收,然后通过 指针变量->成员来访问

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值