zoukankan      html  css  js  c++  java
  • C语言学习1——结构体剖析

    一、定义结构体变量的方法

    1.1先声明结构体类型在定义变量名

    例如:

    a.声明结构体类型

    struct student

    {

        int num;

        char name[20];

        char sex;

        int age;

    }

    b.定义结构体变量

    struct student stu1,stu2;

    1.2声明类型的同时定义变量

    struct student

    {

    int num;

    char name[20];

    char sex;

    int age;

    }stu1,stu2;

    1.3直接定义结构体类型变量

    struct

    {

    int num;

    char name[20];

    char sex;

    int age;

    }stu1,stu2;

    二、结构体变量的引用

    结构体变量名.成员名

    stu1.num = 1000;

    三、结构体变量的初始化

    和其他类型变量一样,对结构体变量可以在定义时指定初值

    struct

    {

    int num;

    char name[20];

    char sex;

    int age;

    }stu1={10010,"xiaoming",'M',24};

    四、结构体数组

    4.1定义结构体数组

    和定义结构体变量的方法相仿,只需要说明其为数组即可。

    例如:

    struct student

    {

    int num;

    char name[20];

    char sex;

    int age;

    };

    struct student stu[4];

    也可以直接定义一个结构体数组,

    例如:

    struct student

    {

    int num;

    char name[20];

    char sex;

    int age;

    } stu[4];

    struct {

    int num;

    char name[20];

    char sex;

    int age;

    } stu[4];

    4.2结构体数组初始化

    struct {

    int num;

    char name[20];

    char sex;

    int age;

    } stu[2]={{10010,"xiaoming",'M',24},{10020,“xiaogang”,'F',23}};

     初始化的一般形式为定义数组的时候后面加上“={初值表列}

    五、指向结构体类型数据的指针

    5.1指向结构体变量的指针

    例如:

    struct student

     {

    int num;

    char name[20];

    char sex;

    int age;

    }

    struct student stu1;

    struct student *Pstu;

    Pstu = &stu1;

    下面几条语句是等价的

    stu1.num = 100;

    (*p).num = 100;

    p->num = 100;

    也就是说,以下三种形式等价:

    a.结构体变量.成员名

    b.(*p).成员名

    c.p->成员名

    另外,有以下几种运算:

    p->n 得到P指向的结构体变量中的成员n的值

    p->n++得到P指向结构体变量中的成员n的值,用完该值后使它加1

    ++p->n得到P指向结构体变量中的成员n的值加1,然后再使用它

    5.2指向结构体数组的指针

     

    struct {

    int num;

    char name[20];

    char sex;

    int age;

    } stu[2]={{10010,"xiaoming",'M',24},{10020,“xiaogang”,'F',23}};

     

    struct student *p;

    for(p = stu;p<stu+3;p++)

    printf("%5d %-20s %2c %4d ",p->num,p->name,p->sex,p->age);

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/maze2015/p/4401373.html
Copyright © 2011-2022 走看看