您的位置:首页 > 编程语言 > C语言/C++

[学习心得]谈谈我对typedef struct 与struct 的理解

2016-11-29 11:52 281 查看

一、引言

在接触数据结构这门课程之初,就对typedef struct命名的结构的例子有些模糊,于是查阅了资料才弄清楚了其中的根本区别。

二、区别

例如 定义一个结构体Student (C语言)

struct Student
{
int name;
}student1;//c语言中写在结构体的后面
--------------------------------------------------
//否则就要这样来声明

/*struct Student
{
int name;
};
struct Student student1*/
---------------------------------------------------
typedef struct Student
{
int name;
}Stu;
Stu student1;
/*以上这三个代码效果相同同样定义了一个student1的变量*/


这样一来,我们在声明变量的时候就可以直接使用
Stu student1;

而如果没用typedef的话我们声明这个变量就得使用
struct Student student1;

即是 Stu=struct Student,Stu就成了struc Student的别名

struct Student//在C++中定义就可以直接这样定义
    {
    int a;
    };    
    //于是就定义了结构体类型Student,声明变量时直接Student student1;


=====================================================================

再看在C++中的体现

同样定义一个结构体Student    

    struct   Student
    {
    int   name;
    }stu1;//这里的stu1是一个变量

    typedef   struct   Student2
    {
    int   name;
    }stu2;//stu2是一个结构体类型相当于上面的struct Student
    stu2 Xiaoming;


使用时程序可以直接访问
stu1.name
,然而stu2则必须先访问
stu2 Xiaoming;

然后才可以访问
Xiaoming.name;
;

从级别上来说 Xiaoming和stu1才是一个级别的,都属于变量

作为一个个新手,如果我有什么说的不对的地方希望可以给我指出来,谢谢!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 struct typedef