C语言结构体问题

typedef struct
{
Stack ElementType elem[Stack_Size];
int top;
}SeqStack;
void InitStack(SeqStack *S)
{
S->top=-1;
}
SeqStack是结构体变量,难道结构体变量也可以定义指针类型?

第1个回答  2012-01-29
SeqStack不是结构体变量,是结构体类型,是一种数据类型,与int,char等一样,这是因为你用了typedef,typedef的作用是将结构体名称简化,
typedef struct
{
Stack ElementType elem[Stack_Size];
int top;
}SeqStack;
就等价于:
struct name
{
Stack ElementType elem[Stack_Size];
int top;
}SeqStack;
typedef struct name SeqStack;
下面这个你应该理解吧!
第2个回答  2012-01-29
typedef的含义你没弄明白,简单的说你可以将它理解成是为类型取别名。
比如:typedef int MyInt;
以后定义int型整数值的时候 可以用 int i = 10; 也可以用MyInt i = 10; 他们是等价的。

这个的道理也是类似的。
http://hi.baidu.com/%B0%A2%DF%BF%B8%C1%B5%BBhoney/blog/item/f3f90fb07949815d092302e8.html
这篇是刚找的,讲得挺详细的,可以看看。本回答被提问者采纳
第3个回答  2012-01-29
typedef struct
{
Stack ElementType elem[Stack_Size];
int top;
}SeqStack;
这个是数据类型的定义,定义完成过后SeqStack为数据类型,不是变量。
SeqStack *S表示为定义SeqStack类型的指针
第4个回答  2012-01-29
typedef 这个 的作用 ,让是定义这个 结构体和设个名称关联
相似回答