关于结构体类型、结构体类型名以及结构体变量的区分?

以下到底哪个是结构体类型、结构体类型名以及结构体变量呢typedefstruct{intn;charch[8];}PER;... 以下到底哪个是结构体类型、结构体类型名以及结构体变量呢
typedef struct
{ int n;
char ch[8];
}PER;
展开
 我来答
王律师案件普法

2019-07-06 · TA获得超过35.9万个赞
知道大有可为答主
回答量:374
采纳率:89%
帮助的人:35.6万
展开全部

关键字 struct 就代表是一个结构体类型。

PER就是就是这个结构体类型的名称。

PER per ; per就是定义好的结构体变量。

12345678910111213141516171819202122typedef struct PER{    int n;    char ch[8];}PER;一般这样定义结构体类型 定义变量的时候可以 struct PER per; 或者 直接 PER per;  而用你写的定义方法只能用 PER per 定义变量  如果这样写struct PER{    int n;    char ch[8];}; 只能用 struct PER  per 的方式定义变量。

扩展资料:

#include<stdio.h>

struct pn544_dev{    //一般性定义结构体

 char a;

};   

typedef struct {        //定义一个数据类型

char a;

}pn545_dev;

int main()

{  struct pn544_dev *dev_id;

//struct pn544_dev *pn544_dev = dev_id;    //这个可以

struct pn544_dev pn544_dev;    //这个也是可以,可见不是数据类型的愿因

pn544_dev.a='a';

putchar(pn544_dev.a);

  pn545_dev pn545_dev;        //这个也可以,即使用typedef声明了数据类型,也可以同名。

pn545_dev.a= 'b'

putchar(pn545_dev.a);

return 0;}

参考资料来源:百度百科 ——结构体类型

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
xgjmlf
推荐于2017-11-26 · TA获得超过487个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:161万
展开全部

关键字 struct 就代表是一个结构体类型。

PER就是就是这个结构体类型的名称。

PER per ; per就是定义好的结构体变量。

typedef struct PER
{
    int n;
    char ch[8];
}PER;
一般这样定义结构体类型

定义变量的时候可以 
struct PER per; 或者 直接 PER per;


而用你写的定义方法只能用 PER per 定义变量


如果这样写
struct PER
{
    int n;
    char ch[8];
};

只能用 struct PER  per 的方式定义变量。
更多追问追答
追问
请帮我看下下面的哪项是正确的?呢
则下面叙述中正确的是( )。
A) PER 是结构体变量名 B) PER是结构体类型名
C) typedef struct 是结构体类型 D) struct 是结构体类型名
追答
PRE是结构体类型名称 pre是结构体变量
选B和C
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-06-10
引用xgjmlf的回答:
关键字 struct 就代表是一个结构体类型。
PER就是就是这个结构体类型的名称。
PER per ; per就是定义好的结构体变量。
typedef struct PER{ int n; char ch[8];}PER;一般这样定义结构体类型定义变量的时候可以 struct PER per; 或者 直接 PER per;而用你写的定义方法只能用 PER per 定义变量如果这样写struct PER{ int n; char ch[8];};只能用 struct PER per 的方式定义变量。
展开全部
typedef相当于取别名
typedef struct PER这句和结尾的PER都是结构体类型名;(除非省去typedef但是结尾的PER得修改名字,因为此时修改过后的PER已经变成了结构体变量名)
而C中,typedef是自定义变量名,struct是结构体关键字,所以C是错误的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wzsEpisoder
2018-03-22
知道答主
回答量:1
采纳率:0%
帮助的人:891
引用xgjmlf的回答:
关键字 struct 就代表是一个结构体类型。
PER就是就是这个结构体类型的名称。
PER per ; per就是定义好的结构体变量。
typedef struct PER{ int n; char ch[8];}PER;一般这样定义结构体类型定义变量的时候可以 struct PER per; 或者 直接 PER per;而用你写的定义方法只能用 PER per 定义变量如果这样写struct PER{ int n; char ch[8];};只能用 struct PER per 的方式定义变量。
展开全部
PER是结构体变量,该结构体没有名称
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-12-23 · TA获得超过1433个赞
知道答主
回答量:3074
采纳率:13%
帮助的人:211万
展开全部
培训班怎么招生?面对周圈多不胜数的培训机构,在激烈的招生中如何脱颖而出?仅需几步就能搞定,让招生更简单高效,少花冤枉钱.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式