c语言结构体定义和使用是什么?

Python010

c语言结构体定义和使用是什么?,第1张

C语言结构体定义:

结构体是一种构造数据类型(也称复杂数据类型),由若干不同类型的变量(数据)组成。每个变量都是结构体的成员(member),每个成员可以是基本数据类型,也可以是构造类型。

结构变量的使用:

结构是一个新的数据类型, 因此结构变量也可以象其它类型的变量一样赋值、 运算,不同的是结构变量以成员作为基本变量。结构成员的表示方式为: 结构变量,成员名。

注意事项:

1、struct是声明结构体类型时必须使用的关键字,不能省略。“结构体”这个词是根据英文单词structure译出的。

2、structSTUDENT是定义的数据类型的名字,它向编译系统声明这是一个“结构体类型”,包括name、num、sex、age、score、addr等不同类型的项。

3、structSTUDENT与系统提供的int、char、float、double等标准类型名一样,都是数据类型,具有同样的作用,都是用来定义变量的。

结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。下面以定义结构类型 book 和结构变量mybook 、 storybook 为例说明之。

1. 先定义结构类型,再定义结构变量。

struct book /* 定义结构体类型 */

{

char bookname[20]

float price

char publisher[20]

char author[10]

}

struct book mybook, storybook

用这种方法定义结构变量,是最常用的方法,但须注意不能省略关键字“ struct ”。还可以在定义结构变量的同时给它的成员赋初值。如:

struct book /* 定义结构体类型 */

{

char bookname[20]

float price

char publisher[20]

char author[10]

}

struct book mybook = { “maths”, 24.7, “ 电子社 ”, “zhao” }, storybook

则, mybook 变量的 price = 24.7 。

2. 定义结构类型的同时定义结构变量。

struct book /* 定义结构体类型 */

{

char bookname[20]

float price

char publisher[20]

char author[10]

} struct book mybook, storybook

3. 不定义结构类型,直接定义结构变量。

struct /* 不定义结构类型名 */

{

char bookname[20]

float price

char publisher[20]

char author[10]

} struct book mybook, storybook

需要说明的是,当某结构类型的成员又是另外一个结构类型时,称嵌套定义,其定义方法如下:

struct brith_date

{

int month

int day

int year

}

struct

{

char name[10]

char address[30]

char tel[12]

int age

struct data birthday

char sex[3]

} student_01 , employee

此例直接定义了 student_01 和 employee 两个变量,但是没有定义此结构体的名字,因此不能再定义与student_01 和 employee 同类的其它结构变量了!如下行定义是错误的:

truct boy, girl