typedef struct引起的结构体问题

原来一直认为结构体定义只有struct开头的方法。今天看一本书突然看到typedef struct开头的结构体定义方式吧自己搞的一脸懵逼。既然如此那就看看吧!!

先来看看C语言中的结构体变量的三种方法:

1、先定义结构体类型,再定义变量

注:注意在C语言中定义结构体变量的时候是struct student打头的。

struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}; 
struct student   stu1,stu2;  

2、结构体类型和结构体变量同时定义

struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}stu1,stu2; 

3、直接定义结构体类型变量(这个以前还真没留意)

struct
{ 
    int num;
    char  name[20];
    char sex;
    int age;
}stu1,stu2; 

其实上面第一种方法我个人用的最多。

但是,每一次定义变量的时候都要写struct感觉怪怪的。C语言提供了一种简便些的方式——typedef。

typedef struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}Stu; 
Stu stu1,stu2;  

也就是说:对C语言来说上述的使用typedef定义结构体的方式中Stu相当于struct student的一个别名。即Stu=struct student。

C++语言中的结构体变量:

在C++中一切都是最简捷的方式(果然是语言的进步呀!!):

struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}; 
student   stu1,stu2;  

但是,如果我也加上typedef会怎么样呢?答案如下:
 

struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}stu1; //stu1是一个结构体变量


typedef struct student{ 
    int num;
    char  name[20];
    char sex;
    int age;
}stu2; //stu2是一个结构体类型=struct student

 

结论:在C++中定义结构体的时候不要整什么typedef。此处说明是为了避免以后看到这样的代码不知所措。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱齿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值