A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始




[结构体的基本用法]
一    含义     数据类型,构造类型,里面可以存储不同类型的数据
二    作用     存储不同类型的数据
三    怎么用                                    
                     结构体本身定义    struct  结构体名{类型 变量名;} ;
                     用结构体定义变量   struct  结构体类型      变量名;
                     赋值                    变量名.结构体元素变量名=数据1;
                     使用                    变量名.结构体元素变量名
                     先定义结构体类型(struct 结构体名),再用结构体类型定义一个此种类型的变量

定义结构体三种方法:
                                                     第一种  先定义结构体  再用结构类型定义变量  逐个赋值;
                                                     第二种   边定义边赋值;

                                                     第三种  匿名类型结构体(一次性使用);
file:///var/folders/fn/36q26c8x5292vh_tb8ncmmxc0000gn/T/WizNote/69590bea-4727-47c5-b78e-9d02e6f6e7a2/index_files/5c2a55ae-96b7-4573-9f98-6bf4e53a5ed6.png
                     定义好之后,不能批量化赋值,若要批量化赋值,在赋值的前面加上强转类型;
file:///var/folders/fn/36q26c8x5292vh_tb8ncmmxc0000gn/T/WizNote/69590bea-4727-47c5-b78e-9d02e6f6e7a2/index_files/faacfafa-1b53-48e8-8d41-db18db6497e8.png
                    


四   什么时候用    相关联 不同类型数据 连起来
五   特点          同一作用域 不能重复定义结构体(同名结构体,内部元素不同也不行),除了匿名结构体
                       函数内外可以同时定义同名结构体,使用时,类似全局变量和局部变量的关系,就近原则
               可在定义结构体类型时同时定义结构体变量名,可定义匿名类型结构体;
                       嵌套定义
                       嵌套结构体     用一个结构体类型  定义另外一个结构体类型的  结构体元素变量      
                              内部不再加{}, 则一个挨着一个赋值,最后不够补null或0;



[结构体数组]
一    含义    是数组,每个元素都是结构体
二    作用    存储多个有关联的结构体;
三    怎么用
                   定义及赋值         定义结构体类型
                                            用结构体类型定义各种变量并赋值
                                            用结构体类型定义数组并赋值
                            使用          数组元素.结构体元素    arr[0].name
                                             数组元素和结构体名等价  可以相互赋值    arr[0]=per2;      
四    什么时候用
                    当需要存储多个有关联的结构体,并作为一个整体使用时
五    特点                    
                    数组内  结构体类型一致

file:///var/folders/fn/36q26c8x5292vh_tb8ncmmxc0000gn/T/WizNote/69590bea-4727-47c5-b78e-9d02e6f6e7a2/index_files/12d5e9bb-a9c5-4e9f-a9e6-8f2b230631be.png


[结构体指针]
一    含义    是指针    类型为结构体
二    作用    存储结构体的地址,并操作地址对应的结构体空间的数据
三    怎么用  
                     定义结构体类型
                     用结构体类型定义变量
                     用结构体类型定义指针并赋值   struct 结构体名  *指针名=&变量名;
                     取值      (*指针名).结构体元素名    指针名->结构体元素名(结构体独有)
                     赋值      ( *指针名).结构体元素名=新值;    指针名->结构体元素名=新值
                     
       使用时,* 加 指针名p 代表 指针所指单元的内容(即所指变量); 指针名p 代表 指针所指单元的地址
四    什么时候用    当需要指针操作结构体时
五    特点
           1    结构体名并不代表第一个元素的指针,指针移动一般按首字节移动,有时强制转化也不行,建议不要用指针移动,来打印结构体中的元素.
file:///var/folders/fn/36q26c8x5292vh_tb8ncmmxc0000gn/T/WizNote/69590bea-4727-47c5-b78e-9d02e6f6e7a2/index_files/3d7f3815-1b50-4a79-8a19-2290cb0565bc.png

结构体分配内存空间    对齐原则
每个元素的偏移量(当前元素首地址距离整个结构体首地址的字节数)必须是自己占有字节数的整数倍(如果不够补齐上一个元素的字节数)
整个结构体的字节数是必须是其最大元素所占字节的整数倍.如果不够,最后一个字节填充字节.

file:///var/folders/fn/36q26c8x5292vh_tb8ncmmxc0000gn/T/WizNote/69590bea-4727-47c5-b78e-9d02e6f6e7a2/index_files/85135ffe-7273-4ae4-92d9-cc4c16df08b6.png











2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马