zoukankan      html  css  js  c++  java
  • C程序范例(3)——结构体

    一、结构体类型定义。

      结构体类型和数组类型一样,需要由程序员定义,必须限定以后使用。

      

    struct 类型标识符
    {
              类型名 成员名;
              类型名 成员名;
              ...
    };

      其中,struct 是结构体类型定义的关键字,他与其后用户指定的类型标识符共同组成结构体类型名。例如学生结构体类型定义如下:

    struct st_type
    {
      char num[7];
      char name[20];
      char sex;
      int age;
      float score;
      char address[30];
    };

      说明:(1)定义结构体类型只是规定了这种数据类型的模型,在编译时并不赋给他存储空间,所以绝对不允许对定义的结构体类型进行存取数据的操作。

              (2)结构体成员可以是简单变量、数组或是另一个结构体变量。例如:

    struct d_type
    {
      int year;
      int minth;
      int day;
    };
    struct s_type
    {
      char num[7];
      char name[21];
      char sex;
      struct d_type birthday;
      float score;
      char address[41]; 
    };

              (3)结构体成员名可以与程序中其他变量名同名,系统会自动识别它,不会混淆。

              (4)结构体类型定义可以放在函数外部(全局有效),放在函数内部(只在本函数内部有用)

    二、结构体变量。

    1、结构体变量的定义。

      (1)一般形式定义。

    struct 标识符
    {
      结构体成员表;
    };
    struct 标识符 结构体变量;

      (2)在定义类型的同时,定义变量。

    struct 标识符
    {
      结构体成员表;
    }结构体变量名表;

    2、结构体变量的初始化。

    注意:初始化个数不得超过成员数,若小于成员数,则剩余成员将被初始化为默认值。

    3、结构体变量的引用。

    对结构体变量整体的引用限制较大,只能对他进行一部分操作。

    (1)可作为函数的形参,实参或是函数返回值等进行函数的数据传递。

    (2)可以整体赋值,但是赋值号左边必须是结构体变量,右边必须的是同一种结构体类型的结构体变量或函数返回值,如:student1=student2;

    (3)结构体变量成员的引用。

    结构体变量名.成员名

    三、结构体数组。(相同类型的结构体做元素就可以构成结构体数组,其中,每个元素内部含有不同类型的成员)

    1、结构体数组定义类型。

    struct st_type

    {

      int year;

      int month;

      int day;

    };struct st_type s[3];//定义了一个结构体数组s,他有三个元素,数组中的各元素在内存中是连续存放的。

    2、结构体数组初始化。

    结构体数组在定义中也可以同时初始化。

    结构体类型名 结构体数组名【数组长度】

    3、用结构体数组存储学生信息,每个学生有姓名,学号,成绩。

    #define N4

    #include “stdio.h”

    struct {int num;char name[11]; int score;}t,s[N];

    main(){int i,j,k;print("请输入第一个学生的学号:");

    scanf("%d",&k);}

    四、结构体和函数。

    1、结构体作函数参数。

    结构体成员,可以作为函数实参,形参为与该成员同类型的变量。

    void printf(struct st_type s)

    {printf("输出: 姓名 性别 年龄 成绩");printf("%s%s%c",s.name,...)}

    2、返回值为结构体类型的函数。

    结构体类型名 函数名 (形参表)

    3、typedef语句。

    typedef语句可以为系统已经定义的简单类型(如int double float 等)另起一个名称。也可以为自己定义的结构体枚举等类型另起一个名称。

    typedef 类型名 新类型名

    如:typedef int INTEGER;就是将int类型名修改为INTEGER

    使用typedef语句的优点:(1)可以缩写长的类型定义,使用便于理解的数据类型名,使程序简洁,可读性强。

                                     (2)可将程序参数化,便于移植。

  • 相关阅读:
    广域网(ppp协议、HDLC协议)
    0120. Triangle (M)
    0589. N-ary Tree Preorder Traversal (E)
    0377. Combination Sum IV (M)
    1074. Number of Submatrices That Sum to Target (H)
    1209. Remove All Adjacent Duplicates in String II (M)
    0509. Fibonacci Number (E)
    0086. Partition List (M)
    0667. Beautiful Arrangement II (M)
    1302. Deepest Leaves Sum (M)
  • 原文地址:https://www.cnblogs.com/yjds/p/6507244.html
Copyright © 2011-2022 走看看