首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
6.结构数组
一般地,常用结构描述有复杂数据信息的个体,而用数组描述个体的集合。当数组的元素是结构时,这种数组就称为结构数组。如用结构型描述单个学生,而用结构数组表示一个班的学生。
与定义结构变量的方法相仿,在前述所有定义结构变量的方法中,在变量名之后指定元素个数,就能定义结构数组,也可赋初值。
如同元素为标准数据类型的数组一样,结构数组各元素在内存中也顺序存放,初始化时,逐一给数组的每个元素指定结构初值。
对结构数组元素的访问也是利用数组元素下标的引用方法,若引用结构数组元素的成员,再用结构成员的引用方法,写成以下形式:
结构数组名[元素下标]. 成员名
即首先是指定数组的元素,再指定结构的成员。
引用结构数组元素成员地址的标记方法为
& 结构数组名[元素下标]. 成员名
引用结构数组元素地址的标记方法为
& 结构数组名[元素下标]
引用结构数组首元素地址的标记方法为
结构数组名
7.结构指针变量
把结构变量s所占据的存储段开始地址赋给能指向该结构的指针变量p,就说指针p指向结构变量s。指针p是一个结构指针变量,简称结构指针。定义结构指针的方法,与定义一般指针变量一样,当类型区分符是结构型时,所定义的指针变量即为结构指针。如代码
struct date *pd, d;
定义结构指针pd和结构变量成其中,指针变量pd能指向类型为struct date的结构。赋值代码 pd=&d,使指针pd指向结构变量d。
由指向结构的指针引用结构成员的标记形式为
结构指针变量名->成员名
其中“ ->”称为指向成员运算符。例如,如下代码:
pd->day /* 引用结构变量d的成员day*/
pd_>month /*引用结构变量d的成员month */
pd-> year /* 引用结构变量d的成员year */
表达式“* 指针变量” 表示指针变量所指对象,所以通过指针引用其所指结构的成员也可写成以下形式:
(*指针变量). 结构成员名
这里圆括号是必需的,因为运算符“*”的优先级低于运算符“.”,但是几乎不用这种标记方法,习惯都采用指向成员运算符“->”来标记。
8.指向结构数组元素的指针
结构指针变量也可指向结构数组的某个元素。如有定义:
struct stdType std[50], *ps,*p;
代码:
ps=&std[2];
p=std;
使指针ps指向结构std[2],指针p指向结构std[0]。
通过指针引用它所指数组元素的成员与指向普通结构一样,如代码 ps-> score引用std[2].score;而代码 p-> score引用std[0].score。
当结构指针ps指向结构数组的元素std[k] 时,表达式ps+n表示指向结构数组元素 std[k+n]。利用指向结构数组元素的指针,引用结构数组元素的成员又有多种表示形式:
(1) 利用结构数组元素的指针引用它所指数组元素的成员:
指针变量->成员名 /* 几乎都这样用 */
指针变量[0]. 成员名 /* 几乎不用 */
( *指针变量).成员名 /* 几乎不用 */
(2) 利用结构数组元素的指针引用离它所指元素i个元素的成员:
( 指针变量+i)->成员名 /* 常用 */
指针变量[i].成员名 /* 最常用 */
( *(指针变量+i)).成员名 /* 几乎不用 */
以下代码序列实现在结构数组std的前n个元素中找最高分的那个结构,并由指针p指向该结构:
P= std; /* 等价于p=&std[0] */
for(ps=p+1; ps
if(ps-> score> p-> score) p=ps;
【例 7.1】 以下函数 dayofYear()利用月份天数表,已知日、月、年,计算年中的第几天。
int dTbl[][12] ={{31,28,31,30,31,30,31,31,30,31,30,31},/*平年*/
{31,29,31,30,31,30,31,31,30,31,30,31}}; /* 闰年 */
int dayofYear( int d,int m,int y) /*计算年中第几天 */
{ int i, leap, day=d;
leap=(y%4==0 && y%100)||y%400==0;
for( i=0; i
day += dTbl[leap][i];
return day;
}
相关推荐:北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |