expected primary-expression before xx token错误处理
·
expected primary-expression before xx token
这个 xx 一般指运算符,比如++
,—
等
错误的原因是:把类型(type)当成变量来用了(variable)
如下面例子,List *head是一种类型,错误使用。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define num_xuehao 6
#define num_name 10
typedef struct _item{
int s;
char xue[num_xuehao];
char nam[num_name];
struct _item *next;
}Item;
typedef struct _list{
Item *last;
Item *head;
}List;
void add(List *plist,char *xuehao,char *name,int score);//将新输入的项目连接在链表的后面
int main()
{
List *head = NULL;
List *last = NULL;
}
void add(List *head,List *last,char *xuehao,char *name,int score)
{
//连接在链表后面 ,新加入的部分的每一个小点都要有初始化
Item *p=(Item*)malloc(sizeof(Item));
p->next = NULL;
p->s = score;
strcpy(p->xue ,xuehao);
strcpy(p->nam ,name);
// printf("%s %s %d\n",p->nam,p->xue,p->s);
//find the last
if(List->last){
while(List->last->next){
List->last=List->last->next;
}
List->last->next = p;
} else{
List->last = p;
List->head = p;
}
}
正确的应该是下面这样。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define num_xuehao 6
#define num_name 10
typedef struct _item{
int s;
char xue[num_xuehao];
char nam[num_name];
struct _item *next;
}Item;
typedef struct _list{
Item *last;
Item *head;
}List;
void add(List *plist,char *xuehao,char *name,int score);//将新输入的项目连接在链表的后面
int main()
{
List plist;
plist.head = NULL;
plist.last = NULL;
}
void add(List *plist,char *xuehao,char *name,int score)
{
//连接在链表后面 ,新加入的部分的每一个小点都要有初始化
Item *p=(Item*)malloc(sizeof(Item));
p->next = NULL;
p->s = score;
strcpy(p->xue ,xuehao);
strcpy(p->nam ,name);
// printf("%s %s %d\n",p->nam,p->xue,p->s);
//find the last
if(plist->last){
while(plist->last->next){
plist->last=plist->last->next;
}
plist->last->next = p;
} else{
plist->last = p;
plist->head = p;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)