关于C语言中的typedef

在C语言中定义一个结构体,要最好使用typedef,使用typedef,实际上就是为我们的结构体起了一个新的名字,即定义了一个新的类型,在后面书写自己代码的时候,就可以直接使用自己定义的新的类型第一变量。

例如

#include<stdio.h>
typedef struct
{
    int num;
    struct Node *next;
}Node;
int main()
{
    Node n;
    n.num=111;
    printf("%d",n.num);
    return 0;
}

  通过使用Typedef,我们定义结构体为新的结构类型——Node,后面使用时,可以直接使用Node定义变量。

  

#include<stdio.h>
struct Node
{
    int num;
    struct Node *next;
};
int main()
{
    struct Node n;
    n.num=111;
    printf("%d",n.num);
    return 0;
}

  但是,没有typedef时,我们在后面声明变量时,一定要指明Node是一个结构体,否则,编译器不知道Node类型变量的存在。

  总之,在C语言中,typedef就是为struct XX起一个别名,方便后面书写。

  

  但是在C++中,就没有这种要求。

  

#include<iostream>
using namespace std;
struct Node
{
    int num;
    Node *next;
};
int main()
{
    Node n;
    n.num=111;
    cout<<n.num;
    return 0;
}

  可见,在C++中,只要一次声明了结构体作为新的类型,后面便可以直接使用。

原文地址:https://www.cnblogs.com/wktwj/p/4858816.html