ad_hoc_NW
夕阳_武士
采纳率64.3%
2015-04-05 15:07

在GCC上的C语言编程错误问题

已采纳

#include
#include
#include
struct LinkList
{
int data;
struct LinkList next;
};
struct LinkList Reverse ( LinkList *list ) *
出错**
{
LNode *tmp = NULL;
LNode *p = NULL;

if (list == NULL)
{
    return NULL;
}
tmp = list->next;
while (tmp->next != NULL)
{
    p = tmp->next;
    tmp->next = p->next;
    p->next = list->next;
    list->next = p;
}
return list;

}
int main( )
{
int i=0;
int b;
struct LinkList *L;
struct LinkList *p;
struct LinkList *q;

p=L->next;
while (b!= -1)
{
while( scanf("%d\n",&b)&&(b>0) )
{ p->data=b;
p=p->next;
i++;
}
}

struct LinkList Reverse ( LinkList L ); *出错**

q=L->next;
while(i>=0)
{
printf("%d\n",q->data);
i--;

}  

return 0;
}

为什么会提示
Main.c:31: error: expected ‘)’ before ‘*’ token
Main.c: In function ‘main’:
Main.c:68: error: expected ‘)’ before ‘*’ token

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • yunfenglw 天朗-星空 6年前

    struct LinkList Reverse ( LinkList L ); 出错*
    q=L->next;//这样操作不对
    因为,你把 LinkList定义为结构体类型,相应的L就是结构体变量
    struct LinkList
    {
    int data;
    struct LinkList next;
    };
    next是结构体L的成员,C语言访问结构体成员的方式是:L.next;
    或者你把L定义为指针变量:LinkList *L,这样你可以通过->来访问L指向的结构体的成员L->next。

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 6年前

    LNode的定义在哪里。
    用ideone.com或者codepad.com在线编译看看。
    http://ideone.com/WJp5rS
    没有你说的错误

    点赞 1 评论 复制链接分享
  • u012377333 一枪尽骚丶魂 6年前

    函数定义的时候,形参类型要写对,调用的时候,直接写定义好的实参。
    比如:
    struct LinkList Reverse ( struct LinkList *list )
    没有LinkList这个数据类型
    struct LinkList Reverse ( L );
    调用的使用不需要数据类型

    点赞 评论 复制链接分享
  • bullzerone bullzerone 6年前

    Reverse()函数应该返回指针,而且在结构体定义的时候应该注意,结构体不可以包含自身的实例,但是确可以包含指向自身实例的指针。所以你一开始,
    定义的结构体就是错的。

    点赞 评论 复制链接分享
  • oyljerry oyljerry 6年前

    你的next应该定义成指针类型

    struct LinkList *next

    函数返回值也应该是指针

    点赞 评论 复制链接分享

相关推荐