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

Python030

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

c语言结构体是类似于名片形式的数据集合体,可以把它理解为一种由用户自定义的特殊的复合型的“数据类型”,在这个复合型的“数据类型”中可以包含多种基本数据类型,我们可以把它作为一个整体来操作。

c语言使用:结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用 for 循 环一个一个地使用结构体数组中的元素。

结构体的意义

结构体描述了一段内存的解释意义。

在内存中,数据的意义在于如何使用此段数据,如在内存中存有一个数据3,如果只把他当作正整数来使用,那么其意义为正整数3,如果把内存中的3,当作2的3次方来使用,那么3的意义则为指数3。而一个结构体则描述了一段内存中的数据的使用意义。

结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。下面以定义结构类型 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

用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言。

方法1:void型不传值传址调用与声明。main中声明void date_in(),void date_pout()。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段。此时再main()调用即可。

如下:

struct student

{

char name[20]

int old

char sex

}stu

void date_in()

void main()

{ date_in()

}

void date_in()

{ scanf("%s%d/c,"stu.name,stu.old,stu.sex)

}时间问题程序有点简洁,有问题请追问,很乐意与你分享。