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

问题描述

在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("%dn",&b)&&(b>0) )
{ p->data=b;
p=p->next;
i++;
}
}

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

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

}

return 0;
}

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

解决方案

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。

解决方案二:

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

解决方案三:

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

struct LinkList *next

函数返回值也应该是指针

解决方案四:

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

解决方案五:

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

时间: 2024-11-10 05:33:12

gcc-在GCC上的C语言编程错误问题的相关文章

java编程小说上传-java语言编程小说的上传模块不会做了,请指点

问题描述 java语言编程小说的上传模块不会做了,请指点 用java语言在编程小说的上传功能出现了问题,还请问下一步咋搞? 解决方案 报错的是什么部分错误代码帖出来,上传可以找些io方面的看看 解决方案二: 错误的地方会有信息,可以看看 解决方案三: novel没定义,还是外面定义好了,没传参进来?

《C语言编程魔法书:基于C11标准》——1.4 关于GNU规范的语法扩展

1.4 关于GNU规范的语法扩展 GNU是一款能用于构建类Unix操作系统的计算机软件合集,由自由软件之父Richard Stallman开创,于1983年9月27日对外发布.GNU完全由自由软件(free software)构成.GNU语法扩展源自于GCC编译器,在1987年发布1.0版本,称为GNU C Compiler.随后,GCC编译器前端支持了C++.Objective-C/C++.Fortran.Ada.Java以及最近跃升的Go等编程语言,因此现在GCC被称为GNU Compile

Linux操作系统下C语言编程入门

这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prerequisite 先决条件: 在Linux上编写 C 程序,至少要熟悉以下两方面的基础知识: 1. C语言的编程基础,至少要知道一些基本的语法,控制流程等编程常识. 对常用的标准 C 函数库有常识性的了解. 2. 对Linux/UNIX 的操作有常识性的了解,掌握常用的shell 命令,如 ls,

win7下c语言编程软件有哪些

  win7下c语言编程软件有哪些.好多刚开始接触c语言的朋友都想知道用上面软件开发c语言比较好,一般来说微软的东西肯定是最好的,更适合新手学习,等上手了就可以接触别的软件了.这里脚本之家小编就为大家分享一下c语言编程软件有哪些? Microsoft Visual C++ .Microsoft Visual Studio. DEV C++.Code::Blocks.Borland C++.WaTCom C++.Borland C++ Builder.GNU DJGPP C++.Lccwin32

《C语言编程魔法书:基于C11标准》—— 导读

前 言 为什么要写这本书 本人在2001年上了大学本科,读计算机科学与技术专业.在第一年的上半学期,对计算机编程还没什么感觉.但是就在考"C语言程序设计"这门专业课的前一个月,感觉这门课学了那么久几乎什么都不会,可把我急坏了.然后就在这短短一个月的时间里又是看书,又是上机实验,终于考了70多分,算是过关了--不过奇怪的是在考试结束后,就发现自己对编程有了感情.到了大二,我们上"数据结构"所使用的教材是基于C++编程语言的,因为之前没学过C++语言,所以只能自学.而在

《C语言编程魔法书:基于C11标准》——导读

前 言 为什么要写这本书 本人在2001年上了大学本科,读计算机科学与技术专业.在第一年的上半学期,对计算机编程还没什么感觉.但是就在考"C语言程序设计"这门专业课的前一个月,感觉这门课学了那么久几乎什么都不会,可把我急坏了.然后就在这短短一个月的时间里又是看书,又是上机实验,终于考了70多分,算是过关了--不过奇怪的是在考试结束后,就发现自己对编程有了感情.到了大二,我们上"数据结构"所使用的教材是基于C++编程语言的,因为之前没学过C++语言,所以只能自学.而在

《C语言编程魔法书:基于C11标准》——第3章 C语言编程的环境搭建3.1 Windows操作系统下搭建C语言编程环境

第3章 C语言编程的环境搭建 我们在第2章讲述了学习C语言所必需的一些预备知识.本章将给大家介绍常用桌面操作系统下的C语言环境搭建.这里所讲述的C语言编译器以及集成开发环境(IDE)都是可合法免费下载的,本书不鼓励各位使用盗版或破解软件,所以下面会列出下载这些合法免费软件的官方链接,大家把编程环境搭建完之后即可上机实践编程. 3.1 Windows操作系统下搭建C语言编程环境 Windows操作系统下默认不自带任何C语言编译器,大家必须从网上下载自己所需要的C语言编译器.如果各位想通过C语言开发

《C语言编程魔法书:基于C11标准》——第一篇 预备知识篇 第1章 C魔法概览1.1 例说编程语言

第一篇 预备知识篇 第1章 C魔法概览 本章内容主要对C编程语言(以下简称C语言)进行大体介绍,包括它的历史以及C语言标准的演化进程.然后介绍一下C语言编程思想,当前主流C语言编译器以及GNU语法扩展.最后简单介绍一下从用C语言编写程序到编译.构建一个可执行程序的大致过程. 计算机编程语言从对计算机硬件底层的抽象程度进行分类,可分为:机器语言.汇编语言以及高级语言.下面由底层到高层分别介绍这几种类别的编程语言. 1.1 例说编程语言 1)机器语言是直接通过十六进制数表示当前处理器架构的机器指令码

浅谈C语言编程中程序的一些基本的编写优化技巧_C 语言

大概所有学习C语言的初学者,都被前辈说过,C语言是世界上接近最速的编程语言,当然这并不是吹牛,也并不是贬低其他语言,诚然非C语言能写出高速度的代码,但是C语言更容易写出高速的程序(高速不代表高效),然而再好的工具,在外行人手中也只能是黯淡没落. 对于现代编译器,现代CPU而言,我们要尽量迎合CPU的设计(比如架构和处理指令的方式等),虽然编译器是为程序员服务,并且在尽它最大的能力来优化程序员写出的代码,但是毕竟它还没有脱离电子的范畴,如果我们的代码不能让编译器理解,编译器无法帮我们优化代码,那么