iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中的结构体怎么使用
  • 658
分享到

C语言中的结构体怎么使用

2023-06-16 15:06:53 658人浏览 薄情痞子
摘要

这篇文章主要讲解了“C语言中的结构体怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的结构体怎么使用”吧!一、关于结构体在C语言中,结构体(struct)指的是一种数据结构,是

这篇文章主要讲解了“C语言中的结构体怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的结构体怎么使用”吧!

一、关于结构体

在C语言中,结构体(struct)指的是一种数据结构,是C语言中复合数据类型(aggregate data type)的一类。

结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

结构体的定义如下所示:

struct tag { member-list } variable-list;

其中:

  • struct为结构体关键字;

  • tag为结构体的标志;

  • member-list为结构体成员列表,其必须列出其所有成员;

  • variable-list为此结构体声明的变量。

在一般情况下:tag、member-list、variable-list这3部分至少要出现2个。

二、结构体常规定义

不同的定义,应用在不同场景,所以,我们编程时需要结合实际情况来定义结构体。

方法1:

定义结构体stu,此时结构体相当于一个类型,比如int,如需使用此结构体,方法同int.

struct stu {     char  aa;     short bb;     int   cc; };  struct stu stu1, stu2;

方法2:

定义结构体stu同时定义需要使用的结构体变量stu1, stu2。如后面再需要定义结构体变量,方法同1.

struct stu {     char  aa;     short bb;     int   cc; }stu1, stu2;  struct stu stu3;

方法3:

定义结构体时,结构体名称缺省,同时定义结构体变量stu1,stu2。但后面不可再定义结构体变量。

struct {     char  aa;     short bb;     int   cc; }stu1, stu2;

提示:

这里不能像上面再定义结构体变量:(以下错误)

struct stu3;  struct stu stu3;

三、使用typedef定义结构体

这里先简单说下typedef。

在C和c++编程语言中,typedef是一个关键字。它用来对一个数据类型取一个别名,目的是为了使源代码更易于阅读和理解。它通常用于简化声明复杂的类型组成的结构  ,但它也常常在各种长度的整数数据类型中看到,例如size_t和time_t。

维基百科

方法4:

使用typedef定义结构体同时,给stu结构体别名STU,后续定义可不用使用struct stu,直接使用STU即可。

typedef struct stu {     char  aa;     short bb;     int   cc; }STU;  STU stu1;

你会发现,其实就是通过关键字typedef,将STU取代了struct stu。

当然,也可以这么用:

struct stu stu1;

上面这种定义就失去了typedef的意思,所以不推荐。

方法5:

使用typedef定义结构体时,省掉结构体第一个别名stu,直接在后面加STU,使用方法同上。

typedef struct {     char  aa;     short bb;     int   cc; }STU;  STU stu1;

方法6:

还有一种符合语法规则,但意义不大的定义方式。

typedef struct stu {     char  aa;     short bb;     int   cc; };  struct stu stu1;

以上这些定义方式算是语法的知识,如果还不懂,请再次复习一下。

四、结构体大小计算

结构体的大小,我相信很多人都没搞明白。实际编程中也是很多地方都在应用,比如:存储、拷贝结构体时都会牵涉到结构体大小的问题。

1. 对比两结构体大小,一样吗?

结构体1:

struct stu {     char  aa;     short bb;     char  cc; }stu1;

结构体2:

struct stu {     char  aa;     char  bb;     short cc; }stu2;

答案是不一样。程序测试得出sizeof(stu1)=6, sizeof(stu2)=4.

2. 分析不一样原因

结构体计算要遵循字节对齐原则,一般满足三个准则:

  • 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;

  • 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节;

  • 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节;

对于上面结构体stu1来说,最大字节:2字节,顺序是 char->short->char:

C语言中的结构体怎么使用

对于上面结构体stu2来说,最大字节:2字节,顺序是 char->char->short:

C语言中的结构体怎么使用

通过上面两个表格,相信你应该明白了,改成4字节的int,原理一样。

感谢各位的阅读,以上就是“C语言中的结构体怎么使用”的内容了,经过本文的学习后,相信大家对C语言中的结构体怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言中的结构体怎么使用

本文链接: https://www.lsjlt.com/news/284157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言中的结构体怎么使用
    这篇文章主要讲解了“C语言中的结构体怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的结构体怎么使用”吧!一、关于结构体在C语言中,结构体(struct)指的是一种数据结构,是...
    99+
    2023-06-16
  • C语言中的结构体和共用体怎么使用
    这篇文章主要介绍了C语言中的结构体和共用体怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中的结构体和共用体怎么使用文章都会有所收获,下面我们一起来看看吧。结构体 / struct结构体的定义声明一...
    99+
    2023-06-16
  • c语言结构体怎么用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • C语言中的结构体如何使用
    本篇内容介绍了“C语言中的结构体如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!结构体的声明结构体的定义:结构体是一些值的集合,这些值...
    99+
    2023-07-02
  • 详解C语言中结构体的使用
    目录结构体的声明结构体成员的类型结构体成员的访问结构体的声明 结构体的定义:结构体是一些值的集合,这些值称为成员变量,结构体的每个成员可以是不同类型的变量。 举例: //定义结构体类...
    99+
    2024-04-02
  • C语言中结构体如何使用
    今天就跟大家聊聊有关C语言中结构体如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、关于结构体在C语言中,结构体(struct)指的是一种数...
    99+
    2024-04-02
  • c语言中怎么使用typedef定义结构体
    在C语言中,可以使用typedef关键字来定义结构体,使得结构体的类型名称更加简洁易用。以下是使用typedef定义结构体的一般形式...
    99+
    2023-08-15
    c语言 typedef
  • C 语言结构体的使用方法
    目录C 语言结构体使用1. 结构体的声明和定义1.1 介绍1.2定义的几种类型2. 结构体初始化3. 结构体成员访问4. 结构体传参C 语言结构体使用 1. 结构体的声明和定义 1....
    99+
    2024-04-02
  • C语言结构体的具体使用方法
    目录初识C语言结构体1.为什么要有结构体2.结构体的定义2.1结构体类型的定义2.2定义结构体普通变量及访问2.3定义结构体指针变量及访问初识C语言结构体 1.为什么要有结构体 (1...
    99+
    2024-04-02
  • C语言结构体如何使用
    本文小编为大家详细介绍“C语言结构体如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言结构体如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。本质一些值的集合。简单使用#include ...
    99+
    2023-06-30
  • C语言结构体指针的具体使用
    目录什么是结构体指针?如何访问结构体成员?如何传递结构体指针作为参数?结构体指针数组在 C语言中,结构体指针是一种非常有用的数据类型,它可以让我们更方便地操作结构体。结构体指针可以指...
    99+
    2023-05-20
    C语言结构体指针
  • C语言中结构体和共用体如何使用
    本篇文章给大家分享的是有关C语言中结构体和共用体如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。结构体 / struct结构体的定义声明一个结构体类型的一般形式为:str...
    99+
    2023-06-16
  • C语言中结构体是什么
    这篇文章给大家分享的是有关C语言中结构体是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.结构体定义C语言结构体由一系列相同或者不同类型的数据构成的集合,结构体类型就是以struct关键字定义的数据类型。结...
    99+
    2023-06-29
  • C语言结构体是怎么样的
    这篇文章给大家分享的是有关C语言结构体是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。结构体结构是一些值的集合,这些值称为成员变量。结构的每个成员是不同类型的变量。为什么要有结构体比如说,描述一个学生时,...
    99+
    2023-06-29
  • C语言结构体使用之链表
    目录一、结构体的概念二、结构体的用法三、结构体数组和指针四、结构体指针五、包含结构体的结构体六、链表七、静态链表八、动态链表一、结构体的概念 比如说学生的信息,包含了学生名称、学号、...
    99+
    2024-04-02
  • C#语言中结构体的作用是什么
    今天就跟大家聊聊有关C#语言中结构体的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#语言的结构体是一个比较复杂的东西,在此之上有很多需要设置的参数,否则用起来就很容易出...
    99+
    2023-06-17
  • C语言结构体怎么掌握
    这篇文章主要介绍了C语言结构体怎么掌握的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言结构体怎么掌握文章都会有所收获,下面我们一起来看看吧。例子:#include <stdio.h>/...
    99+
    2023-06-08
  • C语言中结构体struct怎么对齐
    这篇文章主要介绍“C语言中结构体struct怎么对齐”,在日常操作中,相信很多人在C语言中结构体struct怎么对齐问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中结构...
    99+
    2024-04-02
  • C语言结构体指针怎么引用
    这篇文章主要介绍“C语言结构体指针怎么引用”,在日常操作中,相信很多人在C语言结构体指针怎么引用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言结构体指针怎么引用”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-25
  • C语言结构体数组怎么定义和使用
    这篇文章主要讲解了“C语言结构体数组怎么定义和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言结构体数组怎么定义和使用”吧!介绍一个结构体变量可以存放一个学生的一组信息,可是如果有 ...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作