C语言结构体怎么掌握

C语言结构体怎么掌握

这篇文章主要介绍了C语言结构体怎么掌握的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言结构体怎么掌握文章都会有所收获,下面我们一起来看看吧。

例子:

C语言结构体怎么掌握

#include<stdio.h>//32位系统上,结构体在没指定对齐的时候,默认以四字节进行对齐typedefstruct__ST{intid;//4char*name;//4floatmath;//4}ST;intmain(){STst;//获取结构体的第一个元素的首地址int*ptr_0=(int*)(&st);printf("st:%pptr:%p\n",&st,ptr_0);//对结构体第一个元素赋值*ptr_0=100;printf("*ptr_0=%d\n",*ptr_0);//获取结构体的第二个元素的首地址,因为第二个元素是一级指针,所以需要用一个二级指针来接char**ptr_1=(char**)((int)&st+4);printf("ptr_1:%p\n",ptr_1);//对结构体的第二个元素赋值*ptr_1="helloworld";printf("ptr_1:%s\n",*ptr_1);//获取结构体的第三个元素的首地址,根据对齐原则偏移算出第三个元素的地址float*ptr_2=(float*)((int)&st+8);printf("ptr_2:%p\n",ptr_2);//对结构体的第三个元素进行赋值*ptr_2=96.78;printf("ptr_2:%.2f\n",*ptr_2);//输出结构体中所有成员的值printf("st.id=%dst.name=%sst.math=%.2f\n",st.id,st.name,st.math);return0;}

这里的根据对齐原则算出来的偏移量其实其实不就是offsetof宏的原理吗?

#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)

关于“C语言结构体怎么掌握”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C语言结构体怎么掌握”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-04-03 22:36:17
收藏
分享
海报
0 条评论
31
上一篇:C语言实现三子棋小游戏的代码怎么写 下一篇:C语言中用户标识符合法的条件有哪些
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码