结构体

作者: ScratBai | 来源:发表于2017-11-12 11:08 被阅读0次

结构体是什么?

结构体就是把多个变量包装在一起,结构体也可以作为类型使用,你可以定义结构体变量,结构体指针。

为什么需要结构体?

想象现在有一个函数 char* findStudentName(char* no),它通过学号查找学生姓名。当我们仅仅需要查找学生姓名时,是没问题的。假设现在我们还需要获取到年龄,性别,联系电话,班级这些信息呢?你可能会想到我们是不是应该再写几个诸如 findStudentAge, findStudentSex, findStudentPhone, findStudentClass 这样的函数。仅从功能上来说这样确实可以解决问题,但是这个方案不好,因为往往需要多次调用才能获取到需要的全部信息,等到你了解到数据库之类的技术后,你就会认识到这个方案在运行速度上也是不能接受的。

上面提到的这些函数大部分都是返回 char* 类型,现在想象一下,假设有个类型就叫 Student,这个 Student 类型包含了你所需要的所有的学生信息。那么上面的问题是不是就可以用一个 Student findStudent(char* no) 函数解决了?这里提到的 Student 类型在 C 语言中就是通过结构体来实现。

怎么做?

首先要定义上面提到的结构体 Student

struct Student {
   char* name;
   char* sex;
   int age;
   char* class;
   char* no;
   char* phone;
};

struct 是定义和使用结构体的关键字,后面的 Student 是结构体的名字,用花括号包起来的是结构体的成员定义,多个成员之间用分号分割,每个成员需要指明类型和名字。

接下来看下结构体的使用代码

struct Student findStudent(char* no) {    //注意函数的返回值是 struct Student
    struct Student student;   //声明结构体变量
    student.age = 20;       //给结构体成员赋值
    student.name = "小明";
    student.sex = "男";
    student.class = "一年级七班";
    student.no = no;
    student.phone = "18282828282";
    return student;
}

这个 findStudent 函数返回了一个 Student 结构体,在代码中你可以看到如何声明一个结构体变量,如何给每个成员赋值。

最后添加一个 main 函数,尝试调用以上代码

int main() {
    struct Student student = findStudent("1140707");
    printf("%s, %s, %d, %s, %s, %s", student.name, student.sex
            , student.age, student.class, student.no, student.phone);
    return 0;
}

现在把以上代码复制到你的编辑器中编译运行试试看。注意结构体和函数的声明要在使用前。

相关文章

  • 结构体

    [toc] 结构体的定义方式 先定义结构体类型,再定义结构体变量 定义结构体类型的同时定义结构体变量 定义结构体类...

  • 【C语言笔记】<十九>结构体

    结构体的基本概念 结构体初始化 结构体的内存存储细节 结构体定义的方式 结构体类型的作用域 指向结构体的指针 结构...

  • C结构体和链表

    一,结构体变量定义及初始化 二,无名结构体 备注:无名结构体很少使用 三,宏定义结构体 四,结构体嵌套 五,结构体...

  • 结构体

    结构体定义* 结构体中的格式:* struch 结构体名* {* 结构体成员变量* }* 结构体中的特点* 1.结...

  • 结构体数组的定义

    结构体数组的定义 1、先定义结构体类型,再定义结构体数组 2、定义结构体类型的同时定义结构体数组 3、省略结构体类...

  • C#结构体,析构方法,跨程序访问

    结构体 结构体定义 结构体的语法格式: struct + 结构体名 { 结构体成员变量(相当于类中的字段) } 结...

  • 结构体

    结构体有名定义 无名定义 结构体嵌套定义 结构体内存对齐 结构体成员初始化 结构体变量引用 结构体的有名定义:直白...

  • 菜鸡学Swift3.0 13.结构体

    结构体 struct 是值类型 1.定义结构体 struct 结构体类型 { var 结构体属性:类型 ...} ...

  • 结构体

    结构体初识 结构体指针 结构体的匿名字段 结构体嵌套 Go语言中的OOP

  • C语言 第九章 结构体

    [TOC] 第九章结构体 结构体的定义 结构体定义2 指针表示结构体

网友评论

      本文标题:结构体

      本文链接:https://www.haomeiwen.com/subject/nwegmxtx.html