首页>计算机>软件水平考试>复习指导>正文
高级语言程序设计知识点 七

www.zige365.com 2010-7-28 10:48:48 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

    指针变量->成员名 /* 几乎都这样用 */
    指针变量[0]. 成员名 /* 几乎不用 */ 
    ( *指针变量).成员名 /* 几乎不用 */ 
 (2) 利用结构数组元素的指针引用离它所指元素i个元素的成员:
    ( 指针变量+i)->成员名 /* 常用 */ 
    指针变量[i].成员名 /* 最常用 */ 
    ( *(指针变量+i)).成员名 /* 几乎不用 */ 
    以下代码序列实现在结构数组std的前n个元素中找最高分的那个结构,并由指针p指向该结构:
  P= std; /* 等价于p=&std[0] */ 
  for(ps=p+1; ps<std+n; 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<m-1; i++) 
   day += dTbl[leap][i];
   return day;
   }
    9.在函数间传递结构数据
   在函数间传递结构数据主要有以下几种形式:
 (l) 共用全局的外部结构变量。
 (2) 函数设置结构形式参数。
 (3) 函数返回结构值。
 (4) 函数设置结构指针形式参数。
    以函数 dayofYear()为例,设有以下形式的结构类型 struct date,以该类型的结构为形式参数,改写该函数为
  struct date {
  int day;
  int month;
  int year;
  int yearDay;
  char * monthName;
   } date;
  int dayofYear(struct date d) 
  { int i,leap,day=d.day;
  leap =(d.year%4==0 && d.year%l00) ||d.year%400==0;
  for( i=0;i<d.month-1;i++) 
  day += dTbl[leap][i];
  return day;
  }
        调用带结构形式参数的函数,必须提供与形式参数相同类型的结构变量实际参数。主函数中对函数dayofYear()的调用应改写成:
    date.yearDay=dayofYear(date);
        C语言允许函数返回结构型值,如将函数dayofYear()改为设置struct date类型的形式参数,并返回struct date类型的值。对函数dayofYear()的新的改写如下:
  struct date dayofYear(struct date d) 
  { int i, leap;
  d.yearDay=d.day;
  leap=(d. year%4==0 && d.year%100) ||d.year%400==0;
  for(i=0;i<d.month-1;i++) 
  d.yearDay+=dTbl[leap][i];
  return d;
  }
    主函数调用函数dayofYear()把返回的结构值赋给结构变量    date:
  date=dayofYear(date) ;
    再改写函数dayofYear(),使它的形式参数是以struct date结构指针为形式参数。
  void dayofYear(struct date *dp) 
  { int i,leap,day =dp-> day;
  leap =(dp -> year%4==0 && dp -> year%l00) ||dp ->year%400==0;
  for(i=0;i< dp -> month-1;i++) 

本新闻共6页,当前在第3页  1  2  3  4  5  6  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
高级语言程序设计知识点 六
高级语言程序设计知识点 五
高级语言程序设计知识点 四
高级语言程序设计知识点 三
高级语言程序设计知识点 二