C语言中的结构体类型是什么?

 我来答
布天欧阳典
2020-01-23 · TA获得超过4054个赞
知道大有可为答主
回答量:3142
采纳率:29%
帮助的人:186万
展开全部
  在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate
data
type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
  在C语言中,定义一个结构的一般形式为:
  struct结构名
  {
  //成员表列
  };
  
  成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如:
  struct stu
  {
  int num;
  char name[20];
  char sex;
  float score;
  };
  
  在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。
  然后,当结构定义完成后,即创建了一种数据类型,可以像int、float等内置类型一样使用,以上面定义的stu结构体来和int类型对比着看。
  int a;//定义一个int类型的变量a
  stu a; //定义一个stu类型的变量a
  int *p; //定义一个int类型的指针p
  stu *p; //定义一个stu类型的指针p
  int a[10];//定义一个int类型的数组a,它有10个元素,每个元素是int类型
  stu a[10];//定义一个stu类型的数组a,它有10个元素,每个元素是stu类型。
章佳玉兰蓟风
2020-01-19 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:900万
展开全部
struct在C语言中是一个关键字,用于定义结构数据类型。
问题中的两种定义的区别在于第一种是给student数据类型,重新定义了一个类型别名,而第二种则单纯的表示一种叫做student的数据结构类型。两者的主要区别在于后面直接定义变量时。如下代码,则可以直接在结构体后面定义一个zhang_san的结构体变量。
struct
student
{
int
num;
struct
student
*next;
}zhang_san;
而第一种的定义,则会出现错误。
typedef
struct
student
{
int
num;
struct
student
*next;
}student
zhang_san;
扩展:
“结构”是一种构造数据类型,现在一般叫做用户自定义数据类型,它是由若干“成员”组成的。
每一个成员可以是一个基本数据类型或者又是一个构造类型。
结构即是一种“构造”而成的数据类型,
那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。
定义一个结构的一般形式为:
struct结构名
{
//成员表列
};
成员表由若干个成员组成,
每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符
成员名;”。成员名的命名应符合标识符的书写规定。例如:
struct
stu
{
int
num;
char
name[20];
char
sex;
float
score;
};
在这个结构定义中,结构名为stu,该结构由4个成员组成。
第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。
应注意在括号后的分号是必不可少的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
召时芳以媚
2020-01-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:966万
展开全部
DEBUG_Type字面意思是调试类型,实际上DEBUG_Type是作为一个变量,也就是结构体类型的变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2020-01-16 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
结构体是一种数据集合。结构体里面可以包含多个变量或数组,这些变量/数组的类型可以相同、也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。
结构体是一种非常实用的类型,可以将具有逻辑关联的不同类型数据统合在一起统一管理,可以说是面向对象思维的最底层的基础。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
招伦禾鸾
2020-01-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:1057万
展开全部
类似typedef
int
INT;
INT就表示int类型的重定义
DEBUG_Type就是一个结构体类型名,类似int,用法typedef
DEBUG_Type
*P_DEBUG_Type;
P_DEBUG_Type就是指向DEBUG_Type的指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式