精华内容
下载资源
问答
  • C语言结构体变量初始化方法

    千次阅读 2019-07-07 17:08:03
    结构体变量初始化方法 1.定义结构体变量并同时对其初始化 这里介绍三种方法: ...按照结构体成员的声明顺序进行初始化。 struct student stu1={98,"li ming"}; 1.2 乱序法 特点:成员顺序可以不定,Linux ...

    结构体变量的初始化方法

    1.定义结构体变量并同时对其初始化

    这里介绍三种方法:

    1. 顺序法
    2. 乱序法
    3. C++风格的乱序
    struct student
    {
    	int score;
    	const char *name;
    }
    

    1.1 顺序法

    按照结构体成员的声明顺序进行初始化。

    struct student stu1={98,"li ming"};
    

    1.2 乱序法

    特点:成员顺序可以不定,Linux 内核多采用此方式。推荐使用这种初始化方法!

    struct student stu1=
    {
    	.name="li ming",
    	.score=89,
    };
    

    1.3 C++风格的乱序

    struct student stu1=
    {
    	name:"li ming",
    	score:89,
    };
    

    2.先定义结构体变量,再对其初始化

    struct student stu1;
    stu1.score=90;
    stu1.name="li ming";
    
    展开全文
  • 结构体指针的成员指针同样需要初始化 结构体变量定义的时候就已经分配了内存空间,而上面两个确没有 struct test{ int i; struct buf *p;} t; //定义结构体t struct buf{ char data[512]; struct buf *prev; ...

    先说结论

    1. 结构体指针需要初始化 
    2.  结构体指针的成员指针同样需要初始化   
    3.  结构体变量定义的时候就已经分配了内存空间,而上面两个确没有 

    struct test{
    int i;
    struct buf *p;
    } t; //定义结构体t

    struct buf{
    char data[512];
    struct buf *prev;
    struct buf *next;
    } ;

     

    t定义后里面的成员变量在GCC下已经初始化为0了,但p并没有malloc分配空间,因此对t.p->prev的任何赋值操作都会出错,解决方法:

    1、把  struct buf *p 改为 struct buf p;由于定义后已经分配空间,可以直接使用p.prev = &p;

    2、malloc分配空间  t.p = (struct buf*) malloc(sizeof(struct buf));p.prev =  之后就可以赋值了****

    转载于:https://www.cnblogs.com/yanchengwang/p/5577905.html

    展开全文
  • 134_C语言结构体成员定义时初始化

    千次阅读 2019-08-23 20:17:35
    在此之前,定义结构体类型的变量的时候我一般不会初始化,必须初始化的先定义之后再赋值。因为觉得直接定义起来,有一点点麻烦。今天看了一段别人的代码,也是第一次看到这种风格的代码。我在好奇,究竟是我当初...

             这是很基础的知识,但是对我来说确实是新学到的技能。

             在此之前,定义结构体类型的变量的时候我一般不会初始化,必须初始化的先定义之后再赋值。因为觉得直接定义起来,有一点点麻烦。今天看了一段别人的代码,也是第一次看到这种风格的代码。我在好奇,究竟是我当初学习了忘记了还是我所看的教程根本没有?

             不多说了,看一个示范代码:

             代码执行结果:

             很完美的实现了我想要的功能,而且比较清晰。从上面代码直接做个小结:结构体变量定义的时候要初始化,直接用点号加上成员名称之后赋值即可。

             再做一个有意思的测试,代码修改:

             代码执行结果:

             看得出来,初始化的时候可以重复初始化,同时也可以知道这个初始化成员的先后顺序其实不是那么重要。这个确实是一个有意思的功能,学到了!

    展开全文
  • 当我们定义了结构体类型之后,可以使用结构体类型来定义变量,定义变量的格式的方式与基本数据类型定义变量一样。假设我们定义了如下的结构体类型: //定义结构体类型 struct reader { //定义结构体成员; ...

           当我们定义了结构体类型之后,可以使用结构体类型来定义变量,定义变量的格式的方式与基本数据类型定义变量一样。假设我们定义了如下的结构体类型:

    //定义结构体类型

    struct reader

    {

        //定义结构体的成员;

        char name[32];

        int age;

        int number;

    };

           我们可以用该结构体类型来定义变量,如下:

    struct reader r1; //定义结构体变量

           那么,我们可以在定义结构体变量的时候,对其进行初始化,如下:

    //定义结构体变量, 并初始化;

    struct reader r1 = {"www123", 100, 199};

           完整的测试例子如下:

           程序运行结果如下:

           可以看到,我们在定义变量r1的时候,在后面接着赋值运算符“=”,然后,接着需要赋值的数据。在大括号中存放赋值的数据,每个数据之间是有逗号“,”分隔开。

           我们还可以在定义结构体类型的时候就定义变量,同时对其进行初始化,如下:

    //定义结构体类型

    struct reader

    {

        //定义结构体的成员;

        char name[32];

        int age;

        int number;

    }r1, r2;

           此时,在定义struct reader结构体类型的时候,同时定义了变量r1和r2。而且,可以在定义变量的时候初始化,如下:

    //定义结构体类型

    //定义结构体类型

    struct reader

    {

        //定义结构体的成员;

        char name[32];

        int age;

        int number;

    }r1 = {"AAABBB", 99, 886}, r2 = {"www123", 100, 199};

           此时,定义struct reader结构体类型的时候,定义了变量r1和r2,而且,给变量r2初始化数据。程序测试代码如下:

           程序运行结果如下:

           可以看到,我们在定义sruct reader结构体类型的时候,定义了变量r1和r2,并且对它们进行了初始化。

           在定义结构体类型的过程中,我们可以省略“结构体类型名”,但是,这样定义的结构体类型就没有名称了,只能够在定义结构体类型的时候定义变量。例如:

    //定义结构体类型

    struct

    {

        //定义结构体的成员;

        char name[32];

        int age;

        int number;

    }r1, r2 = {"www123", 100, 199};

           此时,定义了一个结构体类型,但是,该结构体类型没有名称,所以,只能够在定义结构体的时候,定义变量。可以在定义变量的时候进行初始化。这种结构体定义类型的方式不是很推荐使用,我们只需要知道有这样的定义方式就可以了。在写代码的时候,我们都更应该给每个变量有一个明确、准确的类型名称。可以通过类型名称和变量名称,都可以知道定义这个类型和变量的一样。这样的代码才是优秀的代码。

    更多的交流可以访问:www.mylinux.vip   加QQ:1523520001,微信:13926572996,备注:linux编程;
    学习、分享更多的linux C/C++ 编程知识。
     

    展开全文
  • 今天来讨论一下C中的内存管理。 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 ...过了几天这位同事说他试了一下,结构体中的成员指针不经过初始化是可以用(左子树和右子树指针) 那
  • C语言结构体结构体引例结构体变量的定义结构体变量的使用结构体变量作为函数参数结构体变量初始化 结构体 引例 输出平均分最高的学生信息 #include <stdio.h> struct student { int num; char name[10]; ...
  • C语言结构体初始化 定义: struct 结构体名 { //成员列表 类型名 成员名 } //变量列表 使用 “.” ,调用结构体各项成员,完成基本操作 结构体数组初始化 #include&lt;iostream&gt; using ...
  • * 结构体中成员变量前的点: 结构体成员指定初始化 * 1.该结构体要先定义 * 2.一个成员变量赋值完后用逗号而不是分号 *3.初始化语句的元素以固定的顺序出现,和被初始化的数组或结构体中的元素顺序一样 * 这样可以...
  • 我们会把初始化结构体的代码提取出来,封装到init()函数中,而通过将结构体变量作为函数参数来完成初始化,但有的时候比如,结构体变量作为参数,在初始化函数中用malloc动态分配内存,这样的行为不能完成外面的变量初始化....
  • c语言结构体学习整理(结构体初始化,结构体指针)

    千次阅读 多人点赞 2019-06-02 15:16:47
    出处:... 目录 1、C语言结构体 1.1几种常用的结构体定义 1.2注意: 2、关于结构体变量的定义和引用 ...3、结构体的存储(内存对齐) ...3.1结构体成员优化 ...7、结构体变量初始化 7.1定义时...
  • //写在前面(自己基础不够扎实,写给自己) struct{ char name[10]; int number;...stu1为结构体变量,这里的指针p指向一个结构体变量,其值是结构体变量stu1的起始地址。对结构体变量成员的引用,
  • 结构体变量初始化

    2012-04-18 13:18:39
    TAG:结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用 TEXT:C语言中引用变量的基本原则是在使用变量前,需要对变量进行定义并初始化。其方法是在定义变量的同时给其一初始值...
  • C语言结构体

    2012-05-02 18:42:18
    描述了C语言结构体的相关知识,尤其是结构体成员变量指定初始化
  • 我们使用C去新建结构体变量时,如果这个变量是局部变量,那么其成员变量的默认初始值就是随机值,所以一般在创建变量时会对其成员的值进行初始化。下面举例说明这个过程, 一 常规初始化 假设结构体类型定义如下, ...
  • 描述结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。...结构体同时也是一些元素的集合,这些元素称为结构体成员(member),且这些成员可以为不同的类型,成员一般用名字访问。...
  • 《代码大全》建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化。1、初始化 代码如下:typedef struct _TEST_T { int i; char c[10];}...
  • 1、先定义结构体类型后再定义结构体变量; 格式为;struct 结构体变量名列表; structbook s1,s2,*ss;//注意这种之前要先定义结构体类型后再定义变量; 2、在定义结构体类型的同时定义结构体变量; ...
  • 结构体变量初始化

    2009-05-19 17:12:00
    转自:http://www.neu.edu.cn/cxsj/pointchart/c9-struct/Untitled(8).htmlTAG:结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用TEXT:C语言中引用变量的基本原则是在使用变量...
  • C语言 结构体

    2019-07-30 18:50:24
    C语言 结构体C 结构体定义结构结构体变量初始化访问结构成员结构作为函数参数指向结构的指针位域位域的使用 C 结构体 C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据...
  • C语言结构体与结构体指针的使用

    千次阅读 多人点赞 2020-08-08 22:29:02
    C语言结构体与结构体指针的使用 tips:最近要好好学习一下数据结构,所以必不可少的就是c语言的结构体和结构体...一、结构体变量的定义和初始化 1、首先我们来看一下结构体的定义 struct 结构体名 { 成员列表; }
  • C语言结构体浅见

    千次阅读 多人点赞 2020-11-23 03:12:40
    整体赋值:2、定义结构体的同时完成结构体变量初始化:2、复制已经初始化的结构体变量以进行赋值:四.结构体的使用五.结构体数组(一维)结构数组定义格式:结构体数组小归纳:五.结构体与指针1、指针指向结构体2、...
  • 结构体变量初始化 结构体数组 结构体和指针 共用体 9.1 结构体 结构体是一种构造数据类型 用途把不同类型的数据组合成一个整体-------自定义数据类型 结构体类型定义 struct [结构体名] { 类型标识符 成员名 类型...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 364
精华内容 145
关键字:

c语言结构体成员变量初始化

c语言 订阅