结构体常识
来源:互联网 发布:带着淘宝穿异界txt 编辑:程序博客网 时间:2024/06/10 03:45
结构体的定义:
struct 结构名称{
数据类型 成员名称;
成员列表;
}
结构体是一种构造类型(也称为复杂数据类型),由不同的变量构成,变量可以是不同数据类型的,每个变量可以是基本数据类型,也可以是构造类型。
构造出结构体之后,结构体也是一种数据类型,可用于声明变量。
下面是结构体以及结构体变量常用的定义方式:
struct stu{ //第一种 char name[10]; int num; //学号 char sex; //性别 float score; 成绩};struct stu stu1,stu2; //定义了两个stu类型的变量,每个变量都有4个成员。
struct stu{ //第二种,和第一种没啥区别。。 char *name; //姓名 int num; //学号 char sex; //性别 float score; //成绩} stu1, stu2;</span>
struct{ //没有写 stu //第三种,这种定义方式由于没有结构名,所以从始至终只有两个变量,不可以声明新的这种类型的变量。 char *name; //姓名 int num; //学号 char sex; //性别 float score; //成绩} stu1, stu2;
#define STU struct stu //第四种,这种称为宏定义方式,每次只需要写出宏的名,就可以声明新的变量了。STU{ char *name; //姓名 int num; //学号 char sex; //性别 float score; //成绩};STU stu1, stu2;成员的使用:
变量名.成员名。 运算符 .
结构体数组:
定义:
struct stu{ char name[20]; int num; char sex;float score;}class[10]; 这个班级有十个学生。每个学生是一个stu类型的变量。初始化赋值:
struct stu{ char *name; int num; char sex; float score;}class[5] = { //也可以不写具体数组长度。 {"Li ping", 5, 'M', 45}, {"Zhang ping", 4, 'M', 62.5}, {"He fang", 1, 'F', 92.5}, {"Cheng ling", 2, 'F', 87}, {"Wang ming", 3, 'M', 58}};</span>结构体数组的使用也很简单,例如,获取“Wang ming”的成绩:
class[4].score;
结构体与指针: 难上加难,慎重struct stu *p; //定义了一个指向stu结构体的指针;struct stu stu1;p=&stu1; //这样指针就指向了一个stu类型的变量stu1,请注意加&,要的是首地址。(取地址取得是结构体变量的地址,切记不可取变量成员的地址。需要注意的是结构体变量的成员在内存中是连续存储的。
有了结构体指针,就可以获取结构体成员了,一般形式为:
(*结构指针变量).成员名
或者:结构指针变量->成员名
例如:(*pstu).num或者:
pstu->num注意
(*pstu)
两侧的括号不可少,因为成员符.
的优先级高于*
。如去掉括号写作*pstu.num
,那么等效于*(pstu.num)
,这样意义就完全不对了。 0 0
- 结构体常识
- 【C语言常识】结构体与联合体
- 430编程C语言常识(IAR)(二)结构体与联合体
- 430编程C语言常识(IAR)结构体与联合体
- 关于data guard的结构常识
- 88、关于data guard的结构常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- 常识
- VueJs $watch()方法总结!!
- IO流总结
- C# 高低位获取
- Linux+树莓派3开发总结——给树莓派挂载移动硬盘或U盘
- json转map和list
- 结构体常识
- poj 2449 Remmarguts' Date 第k短路 A*+spfa 解题报告
- 安卓版手机VPN设置说明!- IGXE华人充值
- C语言scanf()和gets()及printf()和puts()的区别
- UAP 数据操纵 总结
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
- Caffe学习笔记6:激活层(Activiation Layers)和参数
- ffmpeg安装,ffmpeg转码,ffmpeg抽图,ffmpeg字幕
- 银行卡四元素实名认证