一下内容均来自你必须要知道的495C语言问题以及谭浩强一书中结构体的内容 写下来 纯粹为了学习 只写一点 基本的东西
1: 首先 声明一个结构体类型的一般形式是:
struct 结构体名
{成员表列};
注意 :
结构体类型的名字是由关键字和结构体名组合而成的 比如struct student 这个就叫做结构体的类型 。其实就是想当于我们之前学的int 。只是类型不同而已。一个结构体类型一个整形。这个student 是结构体名 是可以由我们自己随便定义的 又称为结构体标记(structure tag)用来区别其他的结构体类型 就是说结构体的类型并非只有一种 比如struct student 和 struct A或者struct B都是不同的结构体类型 各自包含不同的成员而已
2: 定义结构体类型的变量
定义形式为:结构体类型+变量名
比如:struct student studenet1,student2;
------------------- ———— ————
结构体类型名 结构体变量名
其实这种定义和int a,b;是相似的
定义形式1:我们可以在定义结构体类型的时候 同时定义结构体变量 其形式为
struct student
{
成员表列;
}变量名表列 ;
定义形式2:不指定类型名而直接定义结构体类型的变量 其形式为
struct
{
成员列表;
}变量名表列;
但是这种定义方式 指定了一个无名的结构体类型 没有名字 那么就不能再以此结构体类型去定义结构体变量。所以这种方式用的并不多
注意1:
这里要说一下 结构体类型和结构体变量名 这两个是不一样的 我们只能对变量进行赋值 运算 或者存取,但是不能对一个类型进行赋值运算 或者存取 ,就比如 int a;你可以对a进行操作 但是却不能对int进行操作,在编译的时候 对类型是不分配存储空间的,只对变量分配存储空间。
注意2:
结构体中的成员名字可以和程序中变量的名字相同 两者不会有影响