C语言数据类型——结构体

Posted 一只学习的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数据类型——结构体相关的知识,希望对你有一定的参考价值。

1 结构体

定义一个结构的一般形式为:
struct 结构名
{成员表列};
成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
类型说明符 成员名

1.1 结构类型变量的说明

可以有两种方式说明一个结构体变量:
1)先定义结构,再说明结构变量

struct stu
{
int num;
char name[20];
char sex;
float score;
};
struct stu boy1,boy2;

2)在定义结构类型的同时说明结构变量:

struct stu
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;

3)直接定义结构体变量,省略结构体名

struct
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;

1.2 结构类型变量的说明

表示结构变量成员的一般形式是:
结构变量名.成员名

1.3 结构类型变量的赋值

结构变量的赋值就是给各成员赋值。可用输入语句或赋值语句来完成。

1.4 结构变量的初始化

和其他类型变量一样,对结构变量可以在定义时进行初始化赋值。

struct stu /*定义结构*/
{
int num;
char *name;
char sex;
float score;
}boy2,boy1={102,"Zhang ping",'M',78.5};

1.5 结构数组的定义

struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5];

1.6 结构指针变量的说明和使用

1.6.1 指向结构变量的指针

结构指针变量说明的一般形式为:
struct 结构名 *结构指针变量名
有了结构指针变量,就能更方便地访问结构变量的各个成员,其访问的一般形式为:
(*结构指针变量).成员名或结构指针变量->成员名。

1.6.2 指向结构数组的指针

指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址。结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。

1.6.3 结构指针变量作为函数参数

在 ANSI C 标准中允许用结构变量作函数参数进行整体传送。但是这种传送要将全部成员逐个传送,特别是成员为数组时将会使传送的时间和空间开销很大,严重地降低了程序的效率。因此最好的办法就是使用指针,即用指针变量作函数参数进行传送。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。也就是由“按数值传递”变为“按地址传递”。

以上是关于C语言数据类型——结构体的主要内容,如果未能解决你的问题,请参考以下文章

剑仙教程易语言的结构体。自定义数据类型。

c语言里面的结构体是啥意思

c和c++中,对结构体进行强制类型转换!

C语言程序设计用户自己建立数据类型

C数据结构 结构体可以嵌套使用吗?

C 语言关于结构体做参数传递?