C语言问题求帮忙###标注了就一个问题

有大神说下面如果改成那样是不行的,但
typedef struct node
{
int data;
struct node *next;
}*LinkList;这一段小代码为啥可以有*

#include<stdio.h>
#include<stdlib.h>
#define StackInitSize 100
typedef struct
{int data[StackInitSize];
int top;
}SeqStack; ###如果我把这里改成*SeqStack,那么后面的代码要怎么修改,谢谢
SeqStack *InitStack(){
SeqStack *s;
s=(SeqStack *)malloc(sizeof(SeqStack));
if(s!=NULL)
{
s->top=-1;
return s;
}else {printf("没空间\n");
exit(0);
}
}
int isempty(SeqStack *s)
{
return (s->top==-1)?1:0;
}
void push(SeqStack *s,int x)
{
if(s->top==StackInitSize)
{printf("栈满了");exit(0);
}else {s->top++;
s->data[s->top]=x;
}return;
}
int pop(SeqStack *s)
{
int temp;
if(isempty(s))
{printf("kong");
exit(0);
}else {temp=s->data[s->top];
s->top--;
return temp;
}
}
void conversion(int N,int r)
{
SeqStack *s;
int x;
char c;
s=InitStack();
while(N!=0){
push(s,N%r);
N=N/r;}

while(!isempty(s))
{
x=pop(s);
if (x<10)
{
printf("%d",x);}else
printf("%x",x);

}printf("\n");
}
int main(){
int X,r;
printf("输入十进制的整数:");
scanf("%d",&X);
while(X!=0)
{
printf("输入转换进制数:");
scanf("%d",&r);
printf("结果是:");
conversion(X,r);
printf("输入十进制的数:");
scanf("%d",&X);}
}

typedef struct
{    int data[StackInitSize];
int top;
}SeqStack;

    这个是定义结构体类型,声明我这有一个新的结构体,名字叫SeqStack(跟int
    char类似)。而不是变量。那么对于定义一个struct 是不能定义成 struct * 的变量的。你可以理解为,这个跟int一样。定义变量 (
    int a; ) <==>( struct SeqStack  a;) 

    你直接可以用struct SeqStack *a;这样定义变量。 类似于int *a。

    你仔细看看,struct 后面多了个node typedef struct node {}* node
    这个第一个node是struct类型 第二个node是(struct node * )变量

    你的可以改成typedef struct{
    int data[StackInitSize];int top;}SeqStack *SeqStack;

    或者              typedef struct SeqStack {int data[StackInitSize];int top;}*SeqStack;

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜