1、结构体
作者:互联网
1、为什么需要结构体
为了表示一些复杂的事物,而普通的基本类型无法满足实际要。
2、求什么叫结构体
把一些基本类型数据组合在一起形成的一个新的复合数据类型,这个叫做结构体。
3、如何定义结构体
/*---------------------------------------------- 结构体的定义方式 ----------------------------------------------- 3种方式,推荐使用第一种: -----------------------------------------------*/ # include <stdio.h> //第一种方式 这只是定义了一个新的数据类型,并没有定义变量 struct Student { int age; float score; char sex; }; //第二种方式 struct Student2 { int age; float score; char sex; } st2; //第三种方式 struct { int age; float score; char sex; } st3; int main(void) { struct Student st = {80, 66.6, 'F'}; return 0; }
4、怎样使用结构体变量
赋值和初始化
定义的同时可以整体赋初值
如果定义完之后,则只能单个的赋初值
/*---------------------------------------------- 结构体变量的赋值和初始化 -----------------------------------------------*/ # include <stdio.h> //第一种方式 struct Student { int age; float score; char sex; }; int main(void) { struct Student st = {80, 66.6, 'F'}; //初始化 定义的同时赋初值 struct Student st2; st2.age = 10; st2.score = 88; st2.sex = 'F'; printf("%d %f %c\n", st.age, st.score, st.sex); //80 66.599998 F printf("%d %f %c\n", st2.age, st2.score, st2.sex); //10 88.000000 F return 0; }
5、如何取出结构体变量中的每一个成员【重点】
1) 结构体变量名.成员名
2) 指针变量名-〉成员名(第二种方式更常用)
指针变量名->成员名在计算机内部会被转化成(*指针变量名).成员名的方式来执行
所以说这两种方式是等价的
/*---------------------------------------------- 如何取出结构体变量中的每一个成员 -----------------------------------------------*/ # include <stdio.h> struct Student { int age; float score; char sex; }; int main(void) { struct Student st = {80, 66.6F, 'F'}; //初始化 定义的同时赋初值 struct Student * pst = &st; //&st不能改成st pst->age = 88;//第二种方式 st.score = 66.6f; //第一种方式 66.6在C语言中默认是double类型,如果希望一个实数是float类型,则必须在末尾加f或F,
//因此66.6是double, 66.6f或66.6F是float printf("%d %f\n", st.age, pst->score); //88 66.599998:因为浮点型数据不能保证每一个数字都能准确存储 return 0; } /*----------------------------------------------------------------------------------------------- 1.pst->age在计算机内部会被转化成(*pst).age,没有什么为什么,这就是一>的含义,这也是一种硬性规定 2.所以pst->age等价于(*pst).age也等价于st.age 3.我们之所以知道pst->age等价于st.age,是因为pst->age是被转化成了(*pst).age来执行 4.pst->age的含义: pst所指向的那个结构体变量中的age这个成员 ------------------------------------------------------------------------------------------------*/
标签:66.6,struct,age,st,score,pst,结构 来源: https://www.cnblogs.com/zh-xiaoyuan/p/12642120.html