#include <iostream.h>
typedef struct
{
int k;
int b;
} ElemType;
void main()
{
ELemType x;
}
ELemType x;是可以的但是struct x是不可以的,为什么??typedef struct
ELemType就是ELemType可以代替struct ,为什么一个可以一个不可以???
#include <iostream.h>
typedef struct
{
int k;
int b;
} ElemType;
void main()
{
ELemType x;
}
ELemType x;是可以的但是struct x是不可以的,为什么??typedef struct
ELemType就是ELemType可以代替struct ,为什么一个可以一个不可以???
typedef是把整一个数据结构定义ElemType来代替,struct是定义数据结构的关键字而不是具体的数据结构或数据类型!要想用名字来定义数据结构,可以给它取名为Elem,然后用它来声明,如struct Elem{};
然后就可以用声明struct Elem x;来声明数据结构类型了!(用这种方式来声明数据结构变量,不同于typedef,这时数据结构名不能少)
关键是:struct是定义数据结构的关键字而不是具体的数据结构或数据类型!想一想就知道,不同的数据结构有不同的数据成员,不同只用sturct关键字来声明,否则的话如果你是两个结构类型变量的话编译器该怎么给它初始化变量?!
typedef 是将ElemType和 struct { int k; int b;
} 等效了,而不是将ElemType和struct等效,请注意!