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语言结构体和共用体_07

C语言结构体用法

C语言结构体用法

c语言结构体用法

c语言里,怎样判断共用体union的数据类型?

C语言对结构体文件的读取