当前位置:首页 > 工业控制 > 电子设计自动化
[导读]C语言中的“结构体”其实就相当于其他高级语言中的“记录”,结构体的定义方法如下: 例如: Struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };(注意最后的分号不

C语言中的“结构体”其实就相当于其他高级语言中的“记录”,结构体的定义方法如下:

例如:

Struct student

{ int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

};(注意最后的分号不能省略)。

其中第一行的“student”是该结构体的名称,花括号里面的内容是结构体的成员名,这是声明结构体的一般形式。也可以在声明结构体的同时对它进行初始化,例如:

struct stu

{

int num;

char *name;

char sex;

float score;

}pupil[5]={

{101,"Tom",'M',45.8},

{102,"Mike",'M',62.5},

{103,"Chris",'F',92.5},

{104,"Rose",'F',87.6},

{105,"Nate",'M',58.8}

};

该代码中的“pupil[5]”称为结构体数组,它属于结构体变量,在定义该变量的同时对它进行了初始化操作。我们也可以先声明结构体,然后再对它进行初始化操作。

例如:

#include <stdio.h>

int main()

{

struct student

{

char name[8];

int age;

char sex[4];

char depart[20];

float grade1,grade2,grade3;

}a;

float wage;

char c='Y';

if(c=='Y'||c=='y')

{

printf("nName:");

scanf("%s", a.name);

printf("Age:");

scanf("%d", &a.age);

printf("Sex:");

scanf("%s", a.sex);

printf("Dept:");

scanf("%s", a.depart);

printf("Grade1:");

scanf("%f", &a.grade1);

printf("Grade2:");

scanf("%f", &a.grade2);

printf("Grade3:");

scanf("%f", &a.grade3);

wage=a.grade1+a.grade2+a.grade3;

printf("The sum of wage is %6.2fn", wage);

}

return 0;

}

该程序中定义了一个名为“student”的结构体,变量名为“a”,然后再后面“if”包含的符合语句中对该结构体进行初始化。在此,我们可以看出,对结构体的初始化,只能对它里面的每个成员分别初始化。

#include <stdio.h>

struct stu

{

int num;

char *name;

char sex;

float score;

}pupil[5]={

{101,"Tom",'M',45.8},

{102,"Mike",'M',62.5},

{103,"Chris",'F',92.5},

{104,"Rose",'F',87.6},

{105,"Nate",'M',58.8}

};

void avg(struct stu *ps)

{

int c=0,i;

float ave,s=0;

for(i=0;i<5;i++,ps++)

{

s+=ps->score;

if(ps->score<60) c+=1;

}

printf("s=%.3fn",s);

ave=s/5;

printf("average=%.3fncount=%dn",ave,c);

}

int main()

{

struct stu *ps;

ps=pupil;

avg(ps);

return 0;

}

此程序是关于结构体指针变量作函数参数,这样可以提高程序的运行效率,程序中我们定义了一个“stu”的结构体,变量名为“pupil[5]”,并对其进行了初始化,在主函数中定义了一个该结构体的指针ps,将pupil赋值给ps,当函数avg()调用该结构体时,用指针ps来传递pupil的地址,从而,提高了该程序的效率。

结构体与指针的结合使用,可以有效的解决现实生活中的很多问题,因此C语言中的指针和结构体应该能够熟练的掌握。



来源:miaomi67次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电解电容和普通电容是两种不同类型的电容器,它们在结构、工作原理和使用场合等方面存在明显的差异。本文将详细介绍电解电容和普通电容的区别,帮助读者更好地了解这两种电容器。

关键字: 电解电容 普通电容 结构

整流变压器整流变压器是整流设备的电源变压器。整流设备的特点是原方输入电流,而副方通过整流原件后输出直流。整流变压器和普通变压器的原理相同。变压器是根据电磁感应原理制成的一种变换交流电压的设备。变压器一般有初线和次级两个互...

关键字: 整流变压器 电流 结构

变压器是一种能量转换装置,是一种相对可靠的电气设备,但其一旦发生故障影响十分巨大,它牵涉到用户停电和花费较大的修理费用且修理时间也较长。了解变压器的结构,对于分析变压器的故障有很大的帮助作用。电力变压器是根据电磁感应原理...

关键字: 变压器 结构 电能

变配电运行中,变压器必不可少,熟悉和掌握变压器的基本常识是非常有必要的,变压器的基本知识储备是每一个电力人必备的技能!在交流电路中,将电压升高或降低的设备叫变压器,变压器能把任一数值的电压转变成频率相同的我们所需的电压值...

关键字: 变压器 交流电压 结构

直流电机(direct current machine)是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。

关键字: 直流 电机 结构

在DPU概念诞生之初,人们争论它“应如何定义”,但后来发现,只有定义,还远不能说明 DPU能做什么、有什么作用、如何与现有系统更好地协同。本文将讨论DPU发展中的四个关键问题:DPU是什么?DPU可以标准化吗?DPU产业...

关键字: DPU 定义

摘要:由于智能制造行业的发展需求,无人机的用途在无限扩大,同时也对无人机自主导航提出了极高的要求,以减少人为操作的干预。实现无人机姿态追踪功能是无人机自主导航的重要途径,而实现良好的无人机姿态追踪,不仅仅需要建立出色的姿...

关键字: 无人机 姿态追踪 结构

摘要:介绍了160km/h快运货车转向架的主要技术参数、主要结构、主要零部件试验情况及技术特点,为其他形式的快运货车转向架研究提供了借鉴。

关键字: 结构 试验 技术参数

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,事实上所有带有数字接口的设备,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整...

关键字: 嵌入式 语言 技术

近年来,传统的基于结构(structure-based)的设计方法已经逐渐达到其极限,使得用于药物研究和发现的资本开支呈指数级增长。因而,对于药物设计领域来说,基于运动( motion-based)的药物设计方案,即分子...

关键字: 雪湖科技 结构 药物设计
关闭
关闭