C语言结构体怎么定义和使用


这篇文章主要介绍了C语言结构体怎么定义和使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言结构体怎么定义和使用文章都会有所收获,下面我们一起来看看吧。一、关于结构体在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。结构体的定义如下所示:其中:struct为结构体关键字;tag为结构体的标志;member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。在一般情况下:tag、member-list、variable-list这3部分至少要出现2个。二、结构体常规定义不同的定义,应用在不同场景,所以,我们编程时需要结合实际情况来定义结构体。方法1:定义结构体stu,此时结构体相当于一个类型,比如int,如需使用此结构体,方法同int.方法2:定义结构体stu同时定义需要使用的结构体变量stu1, stu2。如后面再需要定义结构体变量,方法同1.方法3:定义结构体时,结构体名称缺省,同时定义结构体变量stu1,stu2。但后面不可再定义结构体变量。提示:这里不能像上面再定义结构体变量:(以下错误)三、使用typedef定义结构体这里先简单说下typedef。维基百科方法4:使用typedef定义结构体同时,给stu结构体别名STU,后续定义可不用使用struct stu,直接使用STU即可。你会发现,其实就是通过关键字typedef,将STU取代了struct stu。当然,也可以这么用:上面这种定义就失去了typedef的意思,所以不推荐。方法5:使用typedef定义结构体时,省掉结构体第一个别名stu,直接在后面加STU,使用方法同上。方法6:还有一种符合语法规则,但意义不大的定义方式。以上这些定义方式算是语法的知识,如果还不懂,请再次复习一下。四、结构体大小计算结构体的大小,我相信很多人都没搞明白。实际编程中也是很多地方都在应用,比如:存储、拷贝结构体时都会牵涉到结构体大小的问题。1. 对比两结构体大小,一样吗?结构体1:结构体2:答案是不一样。程序测试得出sizeof(stu1)=6, sizeof(stu2)=4.2. 分析不一样原因结构体计算要遵循字节对齐原则,一般满足三个准则:结构体变量的首地址能够被其最宽基本类型成员的大小所整除;结构体免费云主机域名每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节;结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节;对于上面结构体stu1来说,最大字节:2字节,顺序是 char->short->char:对于上面结构体stu2来说,最大字节:2字节,顺序是 char->char->short:关于“C语言结构体怎么定义和使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C语言结构体怎么定义和使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: 怎么使用ImGUI绘制D3D外部菜单

这篇文章主要讲解了“怎么使用ImGUI绘制D3D外部菜单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用ImGUI绘制D3D外部菜单”吧!ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/14 10:51
下一篇 02/14 10:51

相关推荐