Autoleaders控制组-C语言结构体学习笔记

前言

存储使用一组有关联的数据通常使用数组,但现实中不同类型的数据往往也有重要联系,如,一个学生的年龄为int型,姓名为char型,分数为float型;
而数组类型固定,无法直接存储不同类型数据;

1.结构体类型建立

形式:struct 结构体名
{member list};

建立stu类型存放学生学号,姓名,成绩;

struct stu
{int num;
char name[20];
float score;
};//注意有分号

用花括号包括内部成员(member)类型,stu为该结构体名。
该部分常放在main函数前,main函数中再定义结构体变量。

2.定义初始化结构体变量

前文建立一类型,未定义变量。
声明类型的同时定义变量:
struct 结构体名
{member list}变量名;

先声明后定义:
struct 类型名 变量名
初始化形式:
变量名={各元素,逗号分隔};
或一步到位:
struct 类型名 变量名={各元素,逗号分隔};

struct stu
{int num;
char name[20];
float score;
}stu1={2356,"Li",100};

3.结构体变量引用赋值

a.如上例,可将stu.num,stu.name等作为一般变量引用和赋值。
b.特殊地,对字符串不能用=赋值,应使用strcpy;
c.同类型结构体变量可直接用变量名互相赋值;

stu.num=2356;
strcpy(stu.name,"Li");

4.结构体数组

a.定义形式:
struct 结构体名
{member list}数组名[长度]

可同时初始化,形式类似数组初始化。

struct student
{int num;
char name[20];
}stu[3]={12,"li",23,"zhang",56,""liu};

5.结构体指针

a.事实上,结构体变量还可以是数组,其他结构体变量,以及指针等。
b.结构体名一样储存首元素地址,可定义结构体指针与其指向同处;

struct student stu1;
struct student *p;//指针类型需一致
p=&stu1;

c.p++代表每次加结构体变量长度,结构体数组中常用。
若p=&stu[0].num,则p+1等于&stu[1].num.
d.用指针引用成员时,形式为
*(p).num 等价于p->num,
//p指向结构体变量,"->"为指向运算符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值