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

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

    1.结构型
    结构型是由若干独立意义成员组成的复杂数据。定义一个结构型的一般形式为
    struct 结构型名{
       数据类型1 成员1名;
       数据类型2 成员2名;
                 ……
       数据类型n 成员n名;
           };
其中关键字"struct"引出结构型的定义。用花括号括住结构型的成员说明表,指明组成此结构型全部成员的数据类型和名称。结构型的成员也称为域。如某个系统的学生数据实体用如下结构型来描述:
   struct stdType {
   int   num;/*学号*/
   char   * name;/*姓名,允许姓名字符串长度可变,按需要申请*/
   char  sex;/*性别'M' 表示男生,'F'表示女生*/
   int age;/*年龄*/
   int score;/*成绩*/
   char *addr; /*家庭地址,允许地址字符串长度可变,按需要申请*/
   } ;
        上例定义结构型struct stdType,有六个成员。实际上,凡是相关的若干数据对象都可组合成一个结构,在一个结构名下进行管理。
         结构成员的数据类型可以是任何类型,包括前面定义的其它结构型,但是结构不能包含自身,而允许结构中可有这样的指针成员,指向如同定义一样的结构。
    2.结构变量
            结构型的变量就是结构变量,程序要使用结构数据,需定义结构变量。结构变量也简称结构。定义结构变量有以下几种不同的方法。
  (l)先定义结构型,再定义结构变量。如利用前面已定义的结构型struct stdType,以下代码
  struct    stdType st1,st2,stdArray[200]
定义结构变量st1、st2和结构数组stdArray。

 (2) 在定义结构型时,同时定义结构变量。如代码
  struct point {/*某绘图程序的坐标类型*/
  int x;
  int y;
   } p1,p2;
定义struct point型变量 p1、p2。
 (3) 在定义无名结构型时,同时定义结构变量。如某种形式的结构型只是一次性定义几个变量,可以省略结构型名,直接定义结构变量。如由日、月、年组成的日期结构变量为:
 struct
 int day; /*日*/
 int month;/*月*/
 int year;/*年*/
 } date1,date2;/*定义两个日期变量datel和date2*/

3.结构变量初始化
      在定义结构变量时,可同时给它置初值,称为结构变量初始化。结构变量初始化时,要按其结构型定义中的成员顺序逐一给出各成员的初值。如
 struct point2 /* 说明绘图程序的坐标类型*/
 int x;
 int y;
 } p3={ 20,50};
结构变量初始化时,对初值表达式的要求与数组初始化对初值表达式的要求相同。
    4.结构变量的引用
      结构变量定义后,就可以用结构变量的名引用结构。 ANSI C还允许相同类型的结构变量相互赋值。
    5.结构变量成员的引用
    引用结构变量成员的标记形式为:
       结构变量名.成员名
其中"." 称为成员运算符。例如,datel.year引用结构变量datel的year成员。因该成员的类型为int型的,可以对它施行任何int型变量可施行的运算。例如,赋值运算datel.year=2000。如结构变量的某成员又是结构,要引用其成员的成员,则继续用成员运算符'.'接上更内居的成员名。如结构变量的某成员是数组,要引用其成员的元素,则继续用数组元素的下标引用结构成员的元素。

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

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