• 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);

  • 相关阅读:
    第2节 2020.05.16 智能互联网之关键系统实践篇【二】
    如何学习系统架构
    cas机制学习
    乐观锁和悲观锁
    qps和tps计算
    brpc的channel和controller学习
    protobuf和brpc
    gflags学习
    一致性哈希学习
    cmake常用命令学习
  • 原文地址:https://www.cnblogs.com/maze2015/p/4401373.html
Copyright © 2020-2023  润新知