结构体

作者: 风情云 | 来源:发表于2020-03-12 13:29 被阅读0次

结构体

由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体(struct)。

出现的原因

假如我们要定义一些学生相关的东西,比如,级别,姓名,分数。那么就要定义三个变量,而且这三个变量在内存不是连续的,维护时会比较困难。传参修改值也会异常困难。结构体应运而生,结构体就可以放某个种类的一些基本性质,这些变量都会在这个结构体的内存块中,定义也会简单,维护起来也不麻烦。


结构体

结构体使用

//struct 结构体名
struct student
{
    //定义时不能赋值
    int age;
    char name[20];
    float score;
};
//注意;结束

这是一个定义,为结构体数据类型,和基本数据类型,如int是一样的,只是告诉编译器如果定义时该分配多大空间,所以不能在定义时赋值,语法出错。注意,定义是以 ; 结束。

    //定义变量且顺序赋值
    //注意不能漏关键字struct
    struct student s1 = {12,"Tom",76};
    //定义变量乱序赋值
    struct student s3 = {age:12,
                        score:81,
                        name:"Koko"};
    //先定义变量后赋值
    //.操作符赋值
    struct student s2;
    s2.age = 13;
    strcpy(s2.name,"John");
    s2.score = 87;
    //打印s1
    printf("age = %d,name = %s,score = %f\n",s1.age,s1.name,s1.score);

也可以定义一个结构体指针

    //定义结构体指针变量
    struct student *s4 = &s3;
    //->操作符赋值
    s4->age = 18;
    strcpy(s4->name,"Coco");
    s4->score = 90;

注意普通结构体变量是用.操作符赋值,指针变量使用->操作符赋值。定义变量时要带struct关键字,不然编译器不知道此为结构体数据类型,编译出错。

其他知识点

结构体可以在定义时,就定义变量

struct student
{
    int age;
    char name[20];
    float score;
}s5,s6;
//定义变量s5,s6
//与struct student s5;效果一样

定义结构体时可以不带结构体名字,但是只能在定义时定义变量

struct 
{
    int age;
    char name[20];
    float score;
}s7;

结构体数组

    //定义时赋值
    struct student s[3] = {{22,"a",91},
                           {23,"b",92},
                           {24,"c",93}};
    //定义后赋值
    s[0].age =  21;

结构体嵌套

//结构体定义
struct primStudent
{
    struct student stu;
    int height;
};
//赋值
p.stu.age = 9;

注意事项

结构体定义时不能赋值,结构体定义结束时以 ; 结束

结构体简单介绍告一段落


微信号

相关文章

  • 结构体

    [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/uceujhtx.html