C语言中typedef struct和struct区别

单个struct就可以自定义一个变量了,加了typedef到底区别在何处?还有typedef和struct用途

区别如下:

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语言

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-04
(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
第2个回答  推荐于2017-09-12
举个例子说明:
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是类型名。不一样的

追问

我好像有点感觉了,你的意思是
typedef struct abc
{int x;
int y;
int z;
}ABC;
中struct abc
{int x;
int y;
int z;
}是个整体,我们用ABC来代替abc,此时ABC不是变量名了,而是类型名

追答

差不多,就这意思。
typedef是将已有的类型改名的。

本回答被提问者采纳
第3个回答  2008-04-04
第一个:只定义了一个test1的结构体变量,以后还想定义这种结构体的话,必须重写整个结构体。

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

第三个:可以直接用text1 test3的形式定义结构体变量。
第4个回答  2012-03-05
typedef就是能让你自己定义一个名字,比如原先是一个很长很长的名字,用typedef能定义一个功能一样但长度较短的名字,方便下面代码的输入

C语言结构体中struct和typedef struct有什么区别?
C语言结构体中struct和typedef struct区别为:声明不同、访问不同、重新定义不同。一、声明不同 1、struct:struct可以直接使用结构体名字声明结构体。2、typedef struct:typedef struct的为。修饰结构体,结构体有了别名,通过结构体别名声明结构体。二、访问不同 1、struct:struct定义的结构体变量,可...

c语言中typedefstruct和struct区别
在C语言中,typedef struct和struct定义结构体时的用法有所区别。1. 基本定义方式的区别:struct是定义结构体的关键字,通常用来声明一个全新的结构体类型。例如,“struct Student { int age; char name[50]; };”定义了一个名为Student的结构体。而typedef关键字主要用来为已有的数据类型...

C语言中typedef struct和struct区别
C语言中,typedef和struct是两个不同的概念,它们在定义和使用结构体时扮演着不同的角色。首先,struct是关键字,用于声明结构体变量,如:cstruct student { char num[10]; char name[20]; int age;};而typedef则用来创建新的类型名,以替代已有的类型,如将上述的struct student重新定义为...

C语言中typedef struct和struct区别
区别如下:struct是结构体的关键字,用来声明结构体变量如 struct student { char num[10]; char name[20]; int age; }; typedef是用来定义新的类型名来代替已有的类型名, 可将上面的结构体定义为 typedef struct student { char num[10]; char name[20]; int age; }stud。也就是说,将原...

简单分析C语言中typedef struct 与 struct 的区别
在C语言中,typedef和struct是两种用于定义数据类型的关键字。typedef主要用来给数据类型赋予新的名称,而struct则用于定义结构体。以typedef为例,如:typedef unsigned long long int ull_int;,这样在后续代码中,就可以使用ull_int来替代unsigned long long int,简化了代码。而struct的用法相对复杂,以...

关于 typedef struct 和 struct
在C语言中,struct关键字用于定义数据结构,而typedef则提供了对结构体类型的别名。让我们通过几个例子来直观理解它们的区别和使用方式。首先,使用struct直接定义结构体如:struct test1 { int x; int y; }; 这里定义了一个名为test1的结构体,包含两个成员变量x和y,可以直接在程序中使用test1.x和...

struct 与typedef struct
在C语言中,关键字typedef扮演着重要角色,它并非宏定义,而是用来创建类型别名。例如,通过typedef,我们可以将"long long"类型简写为"LL",如typedef long long LL;。在声明变量时,如果没有typedef,我们会写成struct Stu stu1,而有了typedef,只需写Stu stu1,更直观易懂。在C++中,结构体的使用...

c语言问题,这个函数这里用typedef struct 和直接用struct什么区别
typedef struct{ QueuePtr front; QueuePtr rear;} LinkQueue;LinkQueue list;用 typedef 定义的 struct 类型可以直接不加前缀 struct 即可使用。如果直接用 struct 定义:struct LinkQueue{ QueuePtr front; QueuePtr rear;};struct LinkQueue list;就要在前面加一个 struct 前缀。

C语言笔记(五)---struct,enum,typedef等
typedef定义的一般形式为: typedef 原类型名 新类型名 其中原类型名中含有定义部分,新类型名一般用大写表示,一般用大写表示,以便于区别。 有时也可用 宏定义 来代替 typedef 功能,但是 宏定义 是由 预处理 完成的,而 typedef 则是 在编译时 完成的,后者更为灵活方...

c语言中关于结构体类型的定义
struct在C语言中是一个关键字,用于定义结构数据类型。问题中的两种定义的区别在于第一种是给student数据类型,重新定义了一个类型别名,而第二种则单纯的表示一种叫做student的数据结构类型。两者的主要区别在于后面直接定义变量时。如下代码,则可以直接在结构体后面定义一个zhang_san的结构体变量。struct ...

相似回答