结构体类型变量
2015-12-09 11:28
197 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wuliangliang__/article/details/50233995
{
int num;//包括一个整型变量num
char name[20];//包括一个字符数组name,可以容纳20个字符
char ***;//包括一个字符变量***
int age;//包括一个整型变量age
float score;//包括一个单精度型变量
char addr[30];//包括一个字符数组addr,可以容纳30个字符
};//最后有一个分号
这样,程序设计者就声明了一个新的结构体类型Student(struct是声明结构体类型时所必须使用的关键字,不能省略),它向编译系统声明: 这是一种结构体类型,它包括num, name, ***, age, score, addr等不同类型的数据项。应当说明Student是一个类型名,它和系统提供的标准类型(如int、char、float、double 一样,都可以用来定义变量,只不过结构体类型需要事先由用户自己声明而已。
声明一个结构体类型的一般形式为
struct 结构体类型名{成员表列};
结构体类型名用来作结构体类型的标志。上面的声明中Student就是结构体类型名。大括号内是该结构体中的全部成员(member),由它们组成一个特定的结构体。上例中的num,name,***,score等都是结构体中的成员。在声明一个结构体类型时必须对各成员都进行类型声明即类型名成员名;每一个成员也称为结构体中的一个域(field)。成员表列又称为域表。
成员名的定名规则与变量名的定名规则相同
声明结构体类型的位置一般在文件的开头,在所有函数(包括main函数)之前,以便本文件中所有的函数都能利用它来定义变量。当然也可以在函数中声明结构体类型。
在C语言中,结构体的成员只能是数据(如上面例子中所表示的那样)。
关于结构体类型,有几点要说明:
(1) 不要误认为凡是结构体类型都有相同的结构。实际上,每一种结构体类型都有自己的结构,可以定义出许多种具体的结构体类型。
(2) 类型与变量是不同的概念,不要混淆。只能对结构体变量中的成员赋值,而不能对结构体类型赋值。在编译时,是不会为类型分配空间的,只为变量分配空间。
(3) 对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。
(4) 成员也可以是一个结构体变量。 (5) 结构体中的成员名可以与程序中的变量名相同,但二者没有关系
今天学习了c语言的结构体数据类型,我一直觉得编程是门熟能生巧的课程,多编程,水平肯定能够提高。最重要的是能够养成那么一种感觉,对程序内容的敏感,看到一些代码,马上就能明白它的作用。牛人一看就能看明白,而我们现在却需要费点劲,所以我们应该多培养自己的感觉,多看程序,多写程序。
struct Student//声明一个结构体类型Student
{
int num;//包括一个整型变量num
char name[20];//包括一个字符数组name,可以容纳20个字符
char ***;//包括一个字符变量***
int age;//包括一个整型变量age
float score;//包括一个单精度型变量
char addr[30];//包括一个字符数组addr,可以容纳30个字符
};//最后有一个分号
这样,程序设计者就声明了一个新的结构体类型Student(struct是声明结构体类型时所必须使用的关键字,不能省略),它向编译系统声明: 这是一种结构体类型,它包括num, name, ***, age, score, addr等不同类型的数据项。应当说明Student是一个类型名,它和系统提供的标准类型(如int、char、float、double 一样,都可以用来定义变量,只不过结构体类型需要事先由用户自己声明而已。
声明一个结构体类型的一般形式为
struct 结构体类型名{成员表列};
结构体类型名用来作结构体类型的标志。上面的声明中Student就是结构体类型名。大括号内是该结构体中的全部成员(member),由它们组成一个特定的结构体。上例中的num,name,***,score等都是结构体中的成员。在声明一个结构体类型时必须对各成员都进行类型声明即类型名成员名;每一个成员也称为结构体中的一个域(field)。成员表列又称为域表。
成员名的定名规则与变量名的定名规则相同
声明结构体类型的位置一般在文件的开头,在所有函数(包括main函数)之前,以便本文件中所有的函数都能利用它来定义变量。当然也可以在函数中声明结构体类型。
在C语言中,结构体的成员只能是数据(如上面例子中所表示的那样)。
关于结构体类型,有几点要说明:
(1) 不要误认为凡是结构体类型都有相同的结构。实际上,每一种结构体类型都有自己的结构,可以定义出许多种具体的结构体类型。
(2) 类型与变量是不同的概念,不要混淆。只能对结构体变量中的成员赋值,而不能对结构体类型赋值。在编译时,是不会为类型分配空间的,只为变量分配空间。
(3) 对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。
(4) 成员也可以是一个结构体变量。 (5) 结构体中的成员名可以与程序中的变量名相同,但二者没有关系
相关文章推荐
- 如果返回结构体类型变量(named return value optimisation,NRVO) ------ 续
- c++中定义结构体类型变量的方法
- 定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数.参数是此结构体类型的变量,返回值是整数
- 指向结构体类型变量的使用
- 数据结构常用的3种结构体类型的变量
- 在结构体中定义另一个结构体类型变量可以吗
- 【C语言提高36】结构体类型和变量定义及基本操作
- vector容器中存放结构体类型的变量
- 结构体类型变量的声明方式
- 结构体类型、结构体变量、结构体数组、结构体指针
- 结构体类型,变量
- 我也要学C语言-第二十章:结构体类型变量,结构体数组
- 定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数
- 结构体类型和结构体变量
- c语言中结构体类型变量类型,结构体变量名赋值
- Vector容器中存放结构体类型的变量
- 【C语言入门教程】7.1 结构体类型变量的定义和引用
- 3、定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数。
- 定义一个结构体变量(包含年月日),写一个函数,计算该日期在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数。
- 如果返回结构体类型变量(named return value optimisation,NRVO)