• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
C语言教程:第七章:结构与联合(1)
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
C语言教程:第七章:结构与联合(1)
软件发布 C语言教程:第七章:结构与联合(1)
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 认证考试 >> 计算机等级考试 >> 计算机等级考试动态 >> C语言教程:第七章:结构与联合(1)

C语言教程:第七章:结构与联合(1)

添加时间: 2007-5-21 4:06:30  作者: 计算机等级考试认证参考  阅读次数:27   来源: http://www.d9soft.com

       

结构类型定义和结构变量说明   

  在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构”。 它相当于其它高级语言中的记录。   

  “结构”是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构既是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。   

一、结构的定义   

定义一个结构的一般形式为:    
struct 结构名    
{    
成员表列    
};   
成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:   
类型说明符 成员名;    
成员名的命名应符合标识符的书写规定。例如:    
struct stu   
{   
int num;   
char name[20];   
char ***;   
float score;   
};    
  在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符数组;第三个成员为***,字符变量;第四个成员为score,实型变量。 应注意在括号后的分号是不可少的。结构定义之后,即可进行变量说明。 凡说明为结构stu的变量都由上述4个成员组成。由此可见, 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。   

二、结构类型变量的说明   

说明结构变量有以下三种方法。以上面定义的stu为例来加以说明。   
1. 先定义结构,再说明结构变量。如:    
struct stu   
{   
int num;   
char name[20];   
char ***;   
float score;   
};   
struct stu boy1,boy2;   
说明了两个变量boy1和boy2为stu结构类型。也可以用宏定义使一个符号常量来表示一个结构类型,例如:    
#define STU struct stu   
STU   
{   
int num;   
char name[20];   
char ***;   
float score;   
};   
STU boy1,boy2;   

2. 在定义结构类型的同时说明结构变量。例如:    
struct stu   
{   
int num;   
char name[20];   
char ***;   
float score;   
}boy1,boy2;   

3. 直接说明结构变量。例如:    
r>{   
int num;   
char name[20];   
char ***;   
float score;   
}boy1,boy2;    

  第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量。三种方法中说明的boy1,boy2变量都具有图7.1所示的结构。说明了boy1,boy2变量为stu类型后,即可向这两个变量中的各个成员赋值。在上述stu结构定义中,所有的成员都是基本数据类型或数组类型。成员也可以又是一个结构, 即构成了嵌套的结构。例如,图7.2给出了另一个数据结构。 按图7.2可给出以下结构定义:

struct date{   
int month;   
int day;   
int year;   
}   
struct{   
int num;   
char name[20];   
char ***;   
struct date birthday;   
float score;   
}boy1,boy2;   
  首先定义一个结构date,由month(月)、day(日)、year(年) 三个成员组成。 在定义并说明变量 boy1 和 boy2 时, 其中的成员birthday被说明为data结构类型。成员名可与程序中其它变量同名,互不干扰。结构变量成员的表示方法在程序中使用结构变量时, 往往不把它作为一个整体来使用。   

  在ANSI C中除了允许具有相同类型的结构变量相互赋值以外, 一般对结构变量的使用,包括赋值、输入、输出、 运算等都是通过结构变量的成员来实现的。   

  表示结构变量成员的一般形式是: 结构变量名.成员名 例如:boy1.num 即第一个人的学号 boy2.*** 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如:boy1.birthday.month 即第一个人出生的月份成员可以在程序中单独使用,与普通变量完全相同。   

结构变量的赋值   

前面已经介绍,结构变量的赋值就是给各成员赋值。 可用输入语句或赋值语句来完成。   
[例7.1]给结构变量赋值并输出其值。   
main(){   
struct stu   
{   
int num;   
char *name;   
char ***;   
float score;   
} boy1,boy2;   
boy1.num=102;   
boy1.name="Zhang ping";   
printf("input *** and score ");   
scanf("%c %f",&boy1.***,&boy1.score);   
boy2=boy1;   
printf("Number=%d Name=%s ",boy2.num,boy2.name);   
printf("Sex=%c Score=%f ",boy2.***,boy2.score);   
}   
struct stu   
{   
int num;   
char*name;   
char ***;   
float score;   
}boy1,boy2;   
boy1.num=102;   
boy1.name="Zhang ping";   
printf("input *** and score ");   
scanf("%c %f",&boy1.***,&boy1.score);   
boy2=boy1;   
printf("Number=%d Name=%s ",boy2.num,boy2.name);   
printf("Sex=%c Score=%f ",boy2.***,boy2.score);   

  本程序中用赋值语句给num和name两个成员赋值,name是一个字符串指针变量。用scanf函数动态地输入***和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的赋值、输入和输出的方法。

 

上下文章:

 

上一篇文章: 2005年全国计算机等级考试二级VB考试大纲 下一篇文章: 北京:2005年计算机等级考试成绩24日公布可短信查询

相关文章:

  • 谷歌百科全书网站Knol推出多种语言服务
  • PS调色教程:教你调出婚片温柔暖色调
  • PS教程:打造都市颓废风格海报
  • PS教程:真人仿卡通手绘效果
  • 火星文:最时髦的网络语言

相关软件:

  • 易语言 V4.04 简体中文正式版
  • API拦截教程 V1.0
  • 脚本语言生成器 V2.5 Build 1050
  • 辰灿汇编语言集成开发环境 V1.0
  • 汇编语言学习工具 3.6
  • AI RoboForm Pass2Go(可携带版) 中文正式版/多国语言版 6.7.3

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

计算机等级考试分类导航

  • 计算机等级考试动态
  • 计算机一级考试
  • 计算机二级考试
  • 计算机三级考试
  • 计算机四级考试

本类经典文章推荐

  • 全国计算机等级考试三级网络技术(...
  • 三级网络技术复习笔记(第1-2章)
  • 三级笔试样题(PC技术)
  • 三级数据库技术样题
  • 三级网络技术复习笔记(5-7)
  • 三级网络技术复习笔记(第3-4章)
  • 笔试样题(网络技术)
  • 机考如何避免范围性错误
  • 2003年最新三级网络模拟题(2)
  • 全国计算机等级考试三级网络技术部...

计算机等级考试动态阅读排行

  • 9月17日计算机等级考试二级VF答案
  • 完整的计算机等级考试上机模拟系统
  • 计算机等级考试:VFp练习题1
  • 全国计算机等级考试三级网络技术(...
  • 历年操作系统论述题及答案(2)
  • 计算机等级考试:VFp练习题2
  • 计算机二级VB软件环境、考试时间、...
  • 2005年全国计算机等级考试全真模拟...
  • 三级网络技术复习笔记(第1-2章)
  • 全国计算机等级考试报名时间、级别...

计算机等级考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试上机考试应试技...
  • 一级(WINDOWS)试题解析-Word篇
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有