C语言中typedef struct和struct区别

单个struct就可以自定义一个变量了,加了typedef到底区别在何处?还有typedef和struct用途... 单个struct就可以自定义一个变量了,加了typedef到底区别在何处?还有typedef和struct用途 展开
 我来答
露酱爱学习
推荐于2019-10-08 · TA获得超过1.3万个赞
知道答主
回答量:231
采纳率:0%
帮助的人:12.9万
展开全部

区别如下:

struct是结构体的关键字,用来声明结构体变量如 struct student { char num[10]; char name[20]; int age; }; typedef是用来定义新的类型名来代替已有的类型名, 可将上面的结构体定义为 typedef struct student { char num[10]; char name[20]; int age; }stud。

也就是说,将原来的struct student 重新定义为 stud。举个例子,如上面的方法定义了结构体student时,如果在主函数中声明结构体变量时,应按如下方法 struct student stu[10];这样就声明了一个结构体数组, 如果开始定义时用typedef,那么就可以直接用 stud stu[10]来声明。

结构数组就是具有相同结构类型的变量集合。假如要定义一个班级40个同学 的姓名、性别、年龄和住址, 可以定义成一个结构数组。需要指出的是结构数组成员的访问是以数组元素为结构变量的, 其形式为: 结构数组元素、成员名 。

扩展资料

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

参考资料:百度百科-c语言

L_o_o_n_i_e
2008-04-04 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5087万
展开全部
(1) struct{ int x; int y; }test1;
好,定义了 结构 test1,
test1.x 和 test1.y 可以在语句里用了。

(2) struct test {int x; int y; }test1;
好,定义了 结构 test1,
test1.x 和 test1.y 可以在语句里用了。
与 1 比,省写 了 test

(3)
typedef struct test
{int x; int y; // 你漏打分号,给你添上
}text1,text2;
只说了 这种结构 的(类型)别名 叫 text1 或叫 text2

真正在语句里用,还要写:
text1 test1;
然后好用 test1.x test1.y

或写 text2 test1;
然后好用 test1.x test1.y

(4)type struct {int x; int y; }test1;
这个不可以。
改 typedef ... 就可以了。
但也同 (3)一样,还要 写:
test1 my_st;
才能用 my_st.x 和 my_st.y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慧雪767
推荐于2017-09-12 · TA获得超过777个赞
知道答主
回答量:120
采纳率:0%
帮助的人:126万
展开全部
举个例子说明:
typedef struct abc
{int x;
int y;
int z;
}ABC;
是将结构体abc类型重新起个名字为ABC,以后再定义同一类型的变量时,可以写成:
ABC m,n;
与:
struct abc m,n;
作用是一样的。
可将复杂数据类型简单化
更多追问追答
追问
struct abc
{int x;
int y;
int z;
}ABC;
我看书上我写的这个也是自定义abc类型呀,加了typedef到底区别在哪儿呀?
追答
struct abc
{int x;
int y;
int z;
}ABC;
这里的ABC是结构体变量名。

type struct abc
{int x;
int y;
int z;
}ABC;
中的ABC是类型名。不一样的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友46c12d00b
2008-04-04 · TA获得超过1036个赞
知道小有建树答主
回答量:1129
采纳率:0%
帮助的人:866万
展开全部
第一个:只定义了一个test1的结构体变量,以后还想定义这种结构体的话,必须重写整个结构体。

第二个:以后想定义结构体的话,可以用struct test test2的方式定义。

第三个:可以直接用text1 test3的形式定义结构体变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-05
展开全部
typedef就是能让你自己定义一个名字,比如原先是一个很长很长的名字,用typedef能定义一个功能一样但长度较短的名字,方便下面代码的输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式