struct和typedef struct的联系和区别

/---------------------------THE START----------------------------------/
定义:
1、typedef的定义
语法:

typedef existing-type new-type;

关键字typedef 允许你从一个现有的类型中创建一个新类型。
2、struct 的定义
语法:

  struct struct-name : inheritance-list 
  {
    public-members-list;    
    protected:
    	protected-members-list;
    private:
    	private-members-list;
  } object-list;

structs 类似于 classes, struct中的成员更像是类中的公共成员.在C中,structs 仅能包含数据并不允许有继承表. 例如:

 struct Date 
 {
      int Day;
      int Month;
      int Year;
 };

3、二者的联系
(1):定义结构体person:

struct person
{
	char name;
	int age;
};

使用所定义的结构体语法:

 struct  person  per1

或者连在一起定义:

struct person
{
	char name;
	int age;
}per2;

忽略类型名定义:

struct 
{ char name[20];
  char sex;
  int age;
  float height;
} per3;

这种定义形式与前两种方法不同,没有说明这种结构体类型的名称。所以这种方式通常用在不需要再次定义此类型结构体变量的情况下。
per1、per2、per3均为结构体变量
单独创建新变量时要声明

struct person per4

(2):在(1)的基础上,进行类型定义,使用关键字typedef定义类型struct person。

typedef struct person
{
	char name;
	int age;
}teacher;

单独创建新变量时可以省去struct,声明如下:

teacher tch1;

4、二者的区别
用typedef进行struct类型定义后,可以直接用定义的3、(2)中的teacher进行变量声明,相当于做了俩步:
第一步:

struct person
{
	char name;
	int age;
}

第二步:

typedef     struct person        teacher;
/*
关键字        原类型名		     新类型名
*/

5、注意:
以上是指在.c文件中的定义方法。
在.cpp文件中可以在定义了:

struct person
{
	char name;
	int age;
}

后,直接调用

person someone1;

来定义变量。
/---------------------------THE END----------------------------------/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值