C语言的结构体定义中的命名是什么规则?

这是一个成绩排名的结构体定义,我的问题是,在定义结构体的时候为什么不加“typedef”?还有就是命名的时候,为什么上面是E,下面是buf[1000]?#include<... 这是一个成绩排名的结构体定义,我的问题是,在定义结构体的时候为什么不加“typedef”?
还有就是命名的时候,为什么上面是E,下面是buf[1000]?

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;

struct E{
char name[101];
int score;
}buf[1000];
展开
 我来答
拥抱Linux
2019-03-14 · 知道合伙人教育行家
拥抱Linux
知道合伙人教育行家
采纳数:418 获赞数:2160
大学的校级奖学金,机械行业十年工作经验

向TA提问 私信TA
展开全部

回答如下:

  1. 关键字 typedef 是为一种数据类型起一个“别名”,所以定义结构体的时候不是一定要用 typedef 。一般用 typedef 给结构体类型起别名,主要是为了以后使用的时候少打一些字,看起来也会更简洁、明白。

  2. 命名的时候,上面是 E 和下面是 buf[1000] 在语法规则上没有任何关系,它们都是标识符,只要符合 C 语言的标识符的命名规范就可以了。

  3. 下面的 buf[1000] 是表示定义了一个名字叫 buf 的长度为 1000 个结构体 struct E 的数组。

如有帮助,烦请点采纳,谢谢!

cdyzxy
2019-03-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3734万
展开全部

E的意思是新设置一种数据类型,以后写E就好比写int一样定义变量类型

buf数组是结构E的数组变量

可以写成:

struct E{
  char name[101];
  int score;
}; //这样仅定义结构E
struct E buf[1000]; //定义结构数组,或者写:E buf[1000];是同样功能
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ebe1e4f3
2019-03-15 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3290万
展开全部
没什么特别的,就是变量的命名规则呀,由字母数字下划线组成,数字不能开头,不能用系统保留字(关键字)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白狼圣狂
2019-03-15 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:70%
帮助的人:33万
展开全部
struct 自定义类型名(可以不定义)(相当于int a的int)
{
}自定义标签名;(相当于int a的a,就像int a=2等等)(或者不写定义,但省略不掉自定义类型,在后面定义时写struct 自定义类型 自定义标签;)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cylz0703
2019-03-14 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4456万
展开全部
你说的是标准C语言的形式是:
typedef struct E{...}E;
E buf[1000];
到了C++,将类的概念扩展到了结构体,结构体升级成了一种比较特殊的类,具有了成员函数,而且成员的访问类型默认为public(公共成员),也就出现了以下形式:
struct E{...};
E buf[1000];
详细请参见C++ primer plus相关章节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式