C++编程笔记:struct和typedef struct的区别

在C语言中,结构体的定义要用typedef struct,例如:

typedef struct Number{
    int a;
    int b;
}Num;

这里的Number和Num指的都是整个结构体,在声明结构体变量的时候可以是

struct Number num1;  //声明结构体变量的第一种方式

也可以是

Num num1;           //声明结构体变量的第二种方式

也就是说Num==struct Number。定义中的Number其实也可以省略,这样的话声明变量就只能是第二种方式了:

typedef struct{     //去掉Number也对
    int a;
    int b;
}Num;
Num num1;   

在C++中,typedef的使用和C中是一样的:

typedef struct Number{      //去掉Number也对
    int a;
    int b;
}Num;                       //Num是一个结构体类型,Num=struct Number.                    
Num num1;                   //使用时需要先声明结构体变量
num1.a=10;                  //再访问成员变量

在C++中还有一种更简便的使用方法:

struct Number{
    int a;
    int b;
}Num;                       //Num是一个结构体变量!!!!               
Num.a=10;                   //使用时可以直接访问成员变量

你可能感兴趣的:(c++编程)