C语言-结构体

作者: 黄一倚 | 来源:发表于2018-07-14 16:19 被阅读1次

结构体的定义

看了很多资料,都说结构的定义有多种方式,分的多了反而觉得乱,所以我个人觉得只要分两种就可以了:

  1. 一种是 不带typedef 的定义方式
  2. 一种是 带typedef 的定义方式

不带typedef 的定义方式

定义一个学生结构体

struct student{
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
};
//定义结构体变量
struct student stu1,stu2;

注意:

  • 在定义结构体后面的分号不能少
  • 单独定义结构体变量时,关键字struct也要一起写,不过在C++中可以省略。

当然,也可以在定义结构体的时候直接定义结构体变量,以上的定义方式也可以写成以下方式

struct student{
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
}stu1,stu2;

这种定义方式很简便,但是容易跟带typedef的定义方式搞混,注意这个结构体变量的位置,下面就来详细说明

带typedef的定义方式

因为第一种定义方式在单独定义结构体变量时需要带上关键字struct,人们觉得比较麻烦,所以就有了这样的一种定义方式。

用带typedef的定义方式重新定义上面的结构体

typedef struct{    //这时student结构体名可以不写
    char no[20];       //学号
    char name[20];    //姓名
    char sex[5];    //性别
    int age;          //年龄
}student;
//单独定义结构体变量
student stu1,stu2;

这里有几个区别以及注意点:

  1. 加上typedef后,struct后的结构体变量名可以省略不写
  2. 结构体大括号后的字符串是结构体的别名(比如上面的 student ),而不是结构体的变量
  3. 在单独定义的变量的时候,struct 可以省略

结构体成员的引用

结构体成员的引用也有两种方式,主要是以结构体变量的类型来决定的。

  1. 如果是一般的结构变量,那么可以通过“.”进行引用
  2. 如果结构变量是一个指针,那么必须通过“->”方式引用

如下所示:

一般结构变量引用结构体成员方式

student stu1;
//引用方式
stu1.no;
stu1.name;
stu1.sex;
stu1.age;

指针型结构体变量引用结构体成员方式

student* stu1;
//引用方式
stu1->no;
stu1->name;
stu1->sex;
stu1->age;

总结:

  1. 结构体是自定义的一种数据类型
  2. 结构体不能进行加减乘除,但是可以相互赋值

相关文章

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • C语言结构体用法很多,坑也很多

    C语言可谓是编程界的传奇语言,历经几 十 年,依然排名前列。 本文主要说的是C语言中的结构体,结构体是C语言中重要...

  • C语言结构体

    结构体 本文介绍C语言结构体,struct 在C++中功能相对C较多,相当于类,这里暂时不讨论,本文单独讨论C语言...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

  • 12-Go语言结构体

    结构体 结构体的基本概念 什么是结构体Go语言中的结构体几乎和C语言中的结构体一模一样都需要先定义结构体类型, 再...

  • C语言学习笔记-结构体占用内存大小的计算

    引言 结构体在C语言中虽然经常使用,但是怎么计算一个结构体占用多大的内存,很多C语言的新手都没注意过,其实C语言的...

  • 结构体与指针

    1.1 Linux C语言结构体 简介:本课程深入的讲解了C语言中,预处理是怎么回事,结构体和公用体又是如何使用及...

  • c语言中的结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 闲聊C语言结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 深入理解Runtime中的isa

    objc_object Objective-C 所有对象都是 C 语言结构体objc_object,这个结构体中包...

网友评论

    本文标题:C语言-结构体

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