郭靖宇娘道:结构体名字的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 15:50:29
结构体上下各有一个名字,各是什么意思,还是只有用typedef的时候才能有下面的名字,什么时候用上面的名字什么时候用下面的名字
那么如果要定义变量用上面的还是下面的?谢谢!

上面的是结构体的名字 下面是结构体的变量
上面的名字类似与变量 类型
下面的名字才是真正使用的变量

补充:是上面的

struct最基础的用法就是
struct A{
int a;
float b;
};
这时,A就是结构体的类型名。如果在}和;之间加个a,变成
struct A{
int a;
float b;
}a;
那么,就是声明了一个A类型的变量a。
有时候,你的程序中用不到结构体的类型名,只是用到有限个该结构体类型的变量,那么我们甚至可以忽略类型名,直接写成
struct{
int a;
float b;
}a;
这就是声明了一个结构体变量a,

使用结构体时,typedef的作用是一般是为结构体的指针类型定义一个别名,如
typedef struct QueueNode{
int data;
QueueNode *next;
}QueueNode,*Queue;
就是为QueueNode *类型定义了别名Queue

同意jiushixuefeng 的回答。