C/C++中结构体的定义和typedef的使用
2016-09-14 15:21
1141 查看
最近复习数据结构的时候,总是分不清struct、typedef struct和他们后面跟的tag名称的位置和含义,今天就来翻书记录下具体结构体的定义和typedef的使用。
一、结构体定义
1.C语言中结构体定义:C允许用户建立由不同类型的数据组成的组合型的数据结构。
struct 结构体名 {成员表列}; 只是建立了一个结构体类型,相当于模型而没有定义变量,其中并无具体数据。因此,需要定义结构体类型变量。
2.定义结构体类型变量的方法:
A.先声明结构体类型,再定义该类型的变量
struct
结构体名 {成员表列};
struct 结构体名 结构体变量名1,结构体变量名2;
B.在声明类型的同时定义变量
struct
结构体名 {成员表列}结构体变量名;
C.不指定类型名而直接定义结构体类型变量
struct
{成员表列}结构体变量名;
3.定义结构体数组并初始化
struct 结构体名 {成员表列}数组名[数组长度]={"aas","sad","dsf"};
二typedef关键字使用方法
1.typedef可用来指定新的类型名来代替已有的类型名。
2.使用情况:
A.简单地用一个新的类型名代替原有的类型名
typedef float Real; //指定Real为类型名,作用于float相同
B.命名一个简单的类型名代替复杂的类型表示方法,如命名一个类型名代替结构体类型
typedef struct{成员表列}结构体变量名;
//声明一个新类型名结构体变量名,代替以上结构体,可用它去定义变量
三、最后,看下区别:
1.typedef struct 结构体变量名{成员表列}结构体变量名;
2.struct 结构体变量名{成员表列}结构体变量名;
3.typedef struct {成员表列}a1,a2,a3;相当于typedef a1 a2;typedef
a1 a3;
1和2的区别在于申请变量时,1需要写 struct node n;而2则需要直接写node n;
3则表示结构体变量名都是结构体类型,声明变量时用任何一个都可以。
以上,就是对struct和typedef的定义区分。
一、结构体定义
1.C语言中结构体定义:C允许用户建立由不同类型的数据组成的组合型的数据结构。
struct 结构体名 {成员表列}; 只是建立了一个结构体类型,相当于模型而没有定义变量,其中并无具体数据。因此,需要定义结构体类型变量。
2.定义结构体类型变量的方法:
A.先声明结构体类型,再定义该类型的变量
struct
结构体名 {成员表列};
struct 结构体名 结构体变量名1,结构体变量名2;
B.在声明类型的同时定义变量
struct
结构体名 {成员表列}结构体变量名;
C.不指定类型名而直接定义结构体类型变量
struct
{成员表列}结构体变量名;
3.定义结构体数组并初始化
struct 结构体名 {成员表列}数组名[数组长度]={"aas","sad","dsf"};
二typedef关键字使用方法
1.typedef可用来指定新的类型名来代替已有的类型名。
2.使用情况:
A.简单地用一个新的类型名代替原有的类型名
typedef float Real; //指定Real为类型名,作用于float相同
B.命名一个简单的类型名代替复杂的类型表示方法,如命名一个类型名代替结构体类型
typedef struct{成员表列}结构体变量名;
//声明一个新类型名结构体变量名,代替以上结构体,可用它去定义变量
三、最后,看下区别:
1.typedef struct 结构体变量名{成员表列}结构体变量名;
2.struct 结构体变量名{成员表列}结构体变量名;
3.typedef struct {成员表列}a1,a2,a3;相当于typedef a1 a2;typedef
a1 a3;
1和2的区别在于申请变量时,1需要写 struct node n;而2则需要直接写node n;
3则表示结构体变量名都是结构体类型,声明变量时用任何一个都可以。
以上,就是对struct和typedef的定义区分。
相关文章推荐
- c / c++ 结构体的定义与使用
- C++学习14:使用typedef定义函数指针类型
- c/c++中typedef详解(此文对typedef用于结构体的定义说明得很清楚到位)
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- c/c++结构体定义以及结合typedef的应用
- 结构体的定义和使用,以及typedef的使用。
- typedef在结构体定义中的使用
- C++ 结构体定义及使用
- 使用typedef定义结构体的问题
- typedef定义的struct类型与struct定义的结构体变量在使用上的区别
- DELPHI结构体的定义和使用
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- C++奇怪的问题。 有关typedef 结构体。
- C++ typedef使用方法总结
- typedef 使用大全2(结构体)
- c和c++中使用结构体的一点区别
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- c/c++中使用宏来定义动态数组
- C# 调用C++dll中的结构体的定义
- 使用Delphi声明C++带函数的结构体实战