文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言结构体如何使用

2023-06-30 12:02

关注

本文小编为大家详细介绍“C语言结构体如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言结构体如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

本质

一些值的集合。

简单使用

#include <stdio.h>struct User {char uName[20];char uPass[20];};int main() {struct User u1 = {"abc","123"};printf("%s\n", u1.uName);printf("%s\n", u1.uPass);return 0;}

效果:

C语言结构体如何使用

一些写法

声明之后,可以立即创建实例。

也可以单独声明。

#include <stdio.h>struct User {char uName[20];char uPass[20];} u1, u2, u3;struct User u4;int main() {struct User u5;return 0;}

匿名结构体:我用了,你们别想再用。

struct {char uName[20];char uPass[20];}x;

我套我自己

只能套指针,因为空间有限。

举例:链表。

#include <stdio.h>struct Node {int val;struct Node* next;};int main() {struct Node a = { 333,NULL };struct Node b = { 666,&a };printf("%d\n", (*b.next).val);return 0;}

效果:

C语言结构体如何使用

内存对齐

结构体放成员,是一个一个放的。

第一个放到首个地址处。

第二个开始,计算一个对齐数,该数是以下两个值的较小者:

1,VS的默认值,8。

2,该成员所占字节数。

实际的偏移量是对齐数的整数倍。

最后,结构体的大小是最大对齐数的整数倍。

举例-int char char

#include <stdio.h>struct A {int a;char b;char c;};int main() {struct A a = { 1,1,1 };printf("%lld", sizeof(a));return 0;}

效果:8

C语言结构体如何使用

图解:

int放在首位。

char占1字节,直接放。

第二个char也是。

最后长度,按int的字节数的整数倍,也就是8。

C语言结构体如何使用

举例-char int char

#include <stdio.h>struct A {char b;int a;char c;};int main() {struct A a = { 1,1,1 };printf("%lld", sizeof(a));return 0;}

效果:12

C语言结构体如何使用

图解:

char直接放。

int从第四个开始放。

char直接放。

最后长度:从9开始第一个4的倍数,12。

C语言结构体如何使用

举例-char char int

#include <stdio.h>struct A {char b;char c;int a;};int main() {struct A a = { 1,1,1 };printf("%lld", sizeof(a));return 0;}

效果:8

C语言结构体如何使用

图解:两个char直接放。

int从下一个4的整数倍,也就是第五个开始放。

最后长度:从8开始第一个4的倍数,8。

C语言结构体如何使用

由结构体指针访问成员

就是一种箭头的写法。

#include <stdio.h>struct A {int a;};int main() {struct A a = { 333 };struct A* b = &a;printf("%d\n", b->a);return 0;}

效果:

C语言结构体如何使用

读到这里,这篇“C语言结构体如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯