C语言之c

发布时间:2020-06-28 01:14:45 作者:师趣妮
来源:网络 阅读:317
/*
结构体 : 保存一组类型不同的数据;
    定义格式 : 
        1,定义结构体类型后,再定义结构体变量 : 
            struct attr_type_name {attr_type attr_name;......};struct struct_name struct_var_name;
        2,定义结构体类型的同时,定义结构体变量 :
            struct attr_type_name {attr_type attr_name;......}struct_var_name;    //结构体类型名称可省略不写,但这样的结构体类型是一次性的;
    初始化 :
        1,定义结构体类型的同时,定义结构体变量,并进行初始化 :
            struct attr_type_name {attr_type attr_name;......}struct_var_name = {.atrr_name = attr_value,.....};
        2,定义结构体类型后,再定义结构体变量并进行初始化 :
            struct attr_type_name {attr_type attr_name;......};struct struct_name struct_var_name = {.atrr_name = attr_value,.....};
        3,定义结构体类型后,再定义结构体变量,之后在进行初始化 :
            struct attr_type_name {attr_type attr_name;......};struct struct_name struct_var_name;struct_var.atrr.name = attr_value;
     结构体在内存中的存储细节 : 与数组类似,不同的是在定义结构体类型时,并不会分配内存空间,只有在定义结构体变量时,才会分配内存空间;
     结构体变量地址 : 为结构体变量第0个属性的地址,并没有保存在结构体变量名称中;
     结构体变量在内存中的实际存储原则 : 
         原则 : 按照结构体中占用内存最大的属性占用的内存的倍数为结构体变量分配内存;
         也即会按照占用内存最大的属性占用的内存为每一个属性分配内存,并查看其剩余内存是否足够容纳下一个属性,如果足够,则直接装入下一个属性,如果不够,重新分配一个最大内存,
          装入该属性,至于上一个属性的剩余内存仍属于该结构体变量,但至此将其空置不在使用;
     结构体类型或变量的作用域 : 自定义位置起至return或"}"结束
     //注 : 局部变量在不同作用域内,可同名;全局变量作用域为自定义位置起至文件末尾;
     指向结构体变量的指针 :
         定义格式 : struct struct_type_name *var_name;
         //注 : "."的运算级要高于"*"
     通过指向结构体的指针访问结构体变量的另类方法 : 指向结构体变量的指针 -> 属性;
     结构体数组 : 
         定义格式 : struct struct_type_name 数组名称[元素个数];
     结构体嵌套 : 结构体中嵌套一个结构体;
     结构体和函数 : 当把结构体变量作为实参传值给形参时,是进行值传递,函数内部修改结构体变量对实参没有影响;
     
*/


推荐阅读:
  1. C语言 之编译器优化
  2. C语言 之递归函数

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c c语言

上一篇:在数据库中修改计价方式

下一篇:MongoDB的Limit方法返回数据

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》