精华内容
下载资源
问答
  • 如何声明结构体变量
    千次阅读
    2021-12-13 10:48:55

    在头文件list_function.h中声明结构体

    /**
     *声明结构体变量
    */
    typedef struct{
        char number[30];     //学号
        char name[30];      //姓名
        char sex[30];       //性别
        char tel[30];       //电话
        char loc[30];       //地址
    }Student;
    
    typedef struct{
        Student* elem[N];     //储存空间的基地
        int length;     //数据结构的长度
    }SqList;

    在头文件list_function.h中声明一个外部链表

    extern SqList *L;

    在list_function.cpp中实例化

    SqList *L;

    然后在其他.cpp文件中加载list_function.h头文件就可以调用这个结构体变量了。

    备注:在学习QT中遇到的困难,解决后觉得记录下来

    更多相关内容
  • 一、结构体类型定义、 二、结构体类型别名、 三、结构体类型变量声明、 1、使用结构体类型 ( 别名 ) 声明变量、 2、 定义隐式结构体声明变量、 3、定义普通结构体声明变量、 二、完整代码示例、





    一、结构体类型定义



    使用 struct 关键字 , 定义普通的 结构体类型 , 这是定义了 固定大小内存块别名 , 此时还没有给 结构体 分配内存 ;

    • 声明了 结构体类型 变量后 , 才会在 栈内存 中为其分配内存 ;
    • 使用 malloc 可以在 堆内存 中为其分配内存 ;
    /**
     * @brief The Student struct
     * 定义 结构体 数据类型 , 这是定义了 固定大小内存块别名
     * 此时还没有给 结构体 分配内存
     * 声明了 结构体类型 变量后 , 才会在 栈内存中为其分配内存
     * 使用 malloc 可以在堆内存中为其分配内存
     */
    struct Student
    {
        char name[20];
        int age;
        int id;
    };
    

    声明上述结构体类型对应的 结构体变量 :

        // 在栈内存中 定义 Student 结构体 类型变量
        struct Student s1;
    




    二、结构体类型别名



    使用 typedef 关键字 , 定义结构体类型别名 , 可以直接使用 别名 结构体变量名 声明结构体类型变量 , 不需要在前面添加 struct 关键字 ;

    /**
     * @brief The Teacher struct
     * 定义 结构体 数据类型 , 同时为该结构体类型声明 别名
     * 可以直接使用 别名 结构体变量名 声明结构体类型变量
     * 不需要在前面添加 struct 关键字
     */
    typedef struct Teacher
    {
        char name[20];
        int age;
        int id;
    }Teacher;
    

    使用 结构体类型别名 定义 Teacher 结构体类型变量 :

        // 使用类型别名 定义 Teacher 结构体类型变量
        Teacher t1;
    




    三、结构体类型变量声明




    1、使用结构体类型 ( 别名 ) 声明变量


    使用 结构体类型 声明 结构体变量 , 如果没有别名 , 必须使用 struct 结构体类型 变量名 格式 , 声明结构体变量 ;

        // 在栈内存中 定义 Student 结构体 类型变量
        struct Student s1;
    

    如果结构体类型有别名 , 则可以使用 结构体类型别名 变量名 , 声明结构体变量 ;

        // 使用类型别名 定义 Teacher 结构体类型变量
        Teacher t1;
    

    2、 定义隐式结构体时声明变量


    定义隐式结构体类型 , 没有结构体名称 , 在结构体结尾直接声明变量名 ;

    // 定义隐式结构体类型 , 没有结构体名称
    // 在结构体结尾直接声明变量名
    struct
    {
        char name[20];
        int age;
        int id;
    }s2, s3;
    

    3、定义普通结构体时声明变量


    定义普通结构体类型的同时定义变量 , 普通的结构体类型后 , 声明结构体类型变量 ;

    // III. 定义结构体类型的同时定义变量
    
    // 定义结构体类型的同时 , 定义结构体变量
    // 普通的结构体类型后 , 声明结构体类型变量
    struct Student2
    {
        char name[20];
        int age;
        int id;
    }s4, s5;
    




    二、完整代码示例



    完整代码示例 :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    /**
     * @brief The Student struct
     * 定义 结构体 数据类型 , 这是定义了 固定大小内存块别名
     * 此时还没有给 结构体 分配内存
     * 声明了 结构体类型 变量后 , 才会在 栈内存中为其分配内存
     * 使用 malloc 可以在堆内存中为其分配内存
     */
    struct Student
    {
        char name[20];
        int age;
        int id;
    };
    
    /**
     * @brief The Teacher struct
     * 定义 结构体 数据类型 , 同时为该结构体类型声明 别名
     * 可以直接使用 别名 结构体变量名 声明结构体类型变量
     * 不需要在前面添加 struct 关键字
     */
    typedef struct Teacher
    {
        char name[20];
        int age;
        int id;
    }Teacher;
    
    
    // II. 定义隐式结构体类型的同时定义变量
    
    // 定义隐式结构体类型 , 没有结构体名称
    // 在结构体结尾直接声明变量名
    struct
    {
        char name[20];
        int age;
        int id;
    }s2, s3;
    
    // III. 定义结构体类型的同时定义变量
    
    // 定义结构体类型的同时 , 定义结构体变量
    // 普通的结构体类型后 , 声明结构体类型变量
    struct Student2
    {
        char name[20];
        int age;
        int id;
    }s4, s5;
    
    
    /**
     * @brief main
     * @return
     */
    int main()
    {
        // I. 用 类型 定义结构体变量
    
        // 在栈内存中 定义 Student 结构体 类型变量
        struct Student s1;
    
        // 使用类型别名 定义 Teacher 结构体类型变量
        Teacher t1;
    
    
        // 命令行不要退出
        system("pause");
        return 0;
    }
    
    
    展开全文
  • 一 结构体和结构体变量的...三 如何声明结构体 1 基本语法 type 结构体名称 struct { field1 type field2 type } 2 举例 type Student struct { Name string // 字段 Age int // 字段 Score float32...

    一 结构体和结构体变量的区别和联系

    1 结构体是自定义的数据类型,代表一类事物。

    2 结构体变量(实例)是具体的,实际的,代表一个具体变量。

    二 结构体变量在内存的布局

    三 如何声明结构体

    1 基本语法

    type 结构体名称 struct {

        field1 type

        field2 type

    }

    2 举例

    type Student struct {
        Name string // 字段
        Age int // 字段
        Score float32 // 字段
    }

    四 字段/属性

    1 基本介绍

    a 从概念或叫法上看:结构体字段 = 属性 = field。

    b 字段是结构体的一个组成部分,一般是基本数据类型、数组,也可是 引用类型。比如:猫结构体的 Name string 就是属性。

    2 注意事项和细节说明

    a 字段声明语法同变量。

    示例

    字段名 字段类型

    b 字段的类型可以为:基本类型、数组或引用类型。

    c 在创建一个结构体变量后,如果没有给字段赋值,都对应一个零值(默认值)。

    布尔类型:false

    数值是:0

    字符串:""

    数组类型的默认值和它的元素类型相关。比如 score [3]int 为[0, 0, 0]。

    指针、slice 和 map:nil,即还没有分配空间。

    3 实战

    a 代码

    package main
    import (
       "fmt"
    )
    
    // 如果结构体的字段类型是: 指针、slice和map,它的零值都是 nil ,即还没有分配空间。
    // 如果需要使用这样的字段,需要先 make,才能使用。
    type Person struct{
       Name string
       Age int
       Scores [5]float64
       ptr *int // 指针
       slice []int // 切片
       map1 map[string]string // map
    }
    
    func main() {
       // 定义结构体变量
       var p1 Person
       fmt.Println(p1)
       if p1.ptr == nil {
          fmt.Println("ok1")
       }
       if p1.slice == nil {
          fmt.Println("ok2")
       }
       if p1.map1 == nil {
          fmt.Println("ok3")
       }
       // 使用 slice,一定要 make
       p1.slice = make([]int, 10)
       p1.slice[0] = 100 // ok
       // 使用 map, 一定要 make
       p1.map1 = make(map[string]string)
       p1.map1["key1"] = "tom~"
       fmt.Println(p1)
    }

    b 测试

    { 0 [0 0 0 0 0] <nil> [] map[]}
    ok1
    ok2
    ok3
    { 0 [0 0 0 0 0] <nil> [100 0 0 0 0 0 0 0 0 0] map[key1:tom~]}

    4 不同结构体变量的字段是独立,互不影响,一个结构体变量字段的更改,不影响另外一个,  结构体是值类型。

    a 代码

    package main
    
    import "fmt"
    
    type Monster struct{
       Name string
       Age int
    }
    
    func main() {
       // 不同结构体变量的字段是独立,互不影响,一个结构体变量字段的更改,不影响另外一个, 结构体是值类型
       var monster1 Monster
       monster1.Name = "牛魔王"
       monster1.Age = 500
       monster2 := monster1 // 结构体是值类型,默认为值拷贝
       monster2.Name = "青牛精"
       fmt.Println("monster1=", monster1) // monster1= {牛魔王 500}
       fmt.Println("monster2=", monster2) // monster2= {青牛精 500}
    }

    b 测试

    monster1= {牛魔王 500}

    monster2= {青牛精 500}

    c 图解

     

    展开全文
  • C/C++定义结构体变量

    2020-08-04 09:32:51
    C: struct student { char name[20]; int age; int number;...//c++中可以直接省略struct 个人觉得c++这方面做得更好,似乎可以将定义的结构体看做一种数据类型,以"数据类型"+"变量"的形式定义结构体变量

    C:

    struct student 
    {
    	char name[20];
    	int age;
    	int number;
    };
    struct student stu1;
    /*******************************************/
    typedef struct student //student 可以省略
    {
    	char name[20];
    	int age;
    	int number;
    }stu;
    stu stu1;
    

    C++:

    struct student 
    {
    	char name[20];
    	int age;
    	int number;
    };
    student stu1;//c++中可以直接省略struct
    

    个人觉得c++这方面做得更好,似乎可以将定义的结构体看做一种数据类型,以"数据类型"+"变量"的形式定义结构体变量。

    展开全文
  • 结构体类型与结构体变量

    千次阅读 2020-04-26 11:49:18
    7.1 结构体概念 结构体(struct)是由一系列...结构体可以被声明变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成...
  • 我在一个头文件声明了一个结构体 然后再另一个函数写了一个函数并在.h里面声明: 编译出现了以下错误; 大概的意思是说我这个结构体未定义,但是我发现我在.c文件写这个函数并没有报错,但是一旦在.h...
  • 结构体的存储方式,结构体变量结构体变量指针作为函数参数传递的问题,,函数传参方式的选择,选择传内容还是传地址,指针的优点
  • 结构体变量以及结构体数组

    千次阅读 2021-12-11 16:01:02
    结构体变量以及结构体数组 1、概述 C 语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级...
  • 一、结构体变量之间的赋值、 二、完整代码示例
  • 一、结构体类型定义 结构体是由若干个称为成员的成分组成,具有以下特点...二、结构体类型变量声明 主要有三种声明方式: 1、定义结构体类型,后声明变量(例如下) 定义:struct point {double x;double y;double
  • C语言声明结构体的方法

    千次阅读 2020-09-21 00:21:01
    1. 先声明结构体,再定义结构体变量 2. 声明结构体的同时定义结构体变量 3. 直接定义结构体变量(很少使用) 或者使用typedef定义一个新的数据类型。 1. 先声明结构体,再定义结构体变量 struct student{ char no...
  • C++结构体类型变量

    千次阅读 2020-12-28 11:45:06
    1、先声明结构体类型再定义变量名,在定义了结构体变量后,系统会为之分配内存单元。 struct Student{ //自定义结构体变量 int num;//学号 char sex;//性别 int age;//年龄 }; 2、在声明类型的同时定义变量 ...
  • C语言结构体变量

    2021-05-20 13:16:22
    结构体是一个或多个变量的集合,这些变量可以是不同的类型,为了处理的方便而将这些变量组织在一个名字之下。比如我要统某个班的学生信息(包括姓名,学号,成绩),每个学生都需要至少3个变量,如若学生人数较多,那...
  • C语言结构体变量——struct

    千次阅读 2022-01-29 10:37:27
    当我们有大量且类型不同的数据需要描述的时候,如果针对每个数据都去定义一个变量或数组,是很消耗时间和内存的,那么如何跟方便的存储大量不同类型的数据呢,这就需要用到结构体变量结构体变量——struct是一种...
  • 9.1 定义和使用结构体变量 9.1.1 自己建立结构体类型 在实际生活中,有些数据是有内在联系的,成组出现的。例如,一个学生的学生、姓名、性别、年纪、成绩和家庭地址等项,是属于一个学生的。人们希望把这些数据...
  • 定义结构体变量的几种方式

    千次阅读 2018-02-07 13:36:59
    首先要注意区分结构体类型和结构体变量,结构体类型是用户为满足需要自己声明的一种类型,相当于事先准备好的框架,而结构体变量则是使用之前准备好的结构体类型定义的,可以类比“int a; float b;”其中的a,b则是...
  • C -结构体变量定义与外部声明

    千次阅读 2020-02-14 02:19:09
    结构体变量声明步骤:一般放在头文件中。 1.typedef struct { uint8_t receive_flag:1;//空闲接收标记 uint8_t dmaSend_flag:1;//发送完成标记 uint16_t rx_len;//接收长度 uint8_t usartDMA_rxBuf[RECEIVELEN];//...
  • C语言 | 结构体变量

    2021-04-29 08:41:58
    花括号内是该结构体所包括的子项,称为结构体的成员,对各个成员都应该进行类型声明。 即 类型名 成员名 成员表列也称为域表,每一个成员是结构体中的一个域,成员命名规则与变量名相同。 C语言如何定义结构
  • C语言中结构体变量到底占多大空间

    千次阅读 2018-09-07 21:56:30
    很久之前就想将内存对齐这块儿知识点总结记录下来,无奈本人患有very very严重的拖拉症,直到今天才下... 结构体到底占多大的空间呢?先看一下下面这道题的输出结果: #include&lt;stdio.h&gt; typed...
  • 怎样通过指向结构体变量的指针访问结构体变量中成员。 #include <stdio.h> #include <string.h> struct Student{ long int num; char name[15]; char sex; float score; }; int main()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 127,057
精华内容 50,822
热门标签
关键字:

如何声明结构体变量