欢迎来到天天文库
浏览记录
ID:43324088
大小:106.00 KB
页数:9页
时间:2019-09-29
《C语言程序设计初学者常犯错误集锦》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、很多学习C语言的同学总会犯这样那样的低级错误,而主流的编辑器VC++6.0虽然可以指出这些错谋,但有时候,它对低级错课并不那么敏感,让很多初学者觉得“情何以堪”呐!木人也是C程初学者,在这,将自己常犯的一些错误列出來,并指出错误原因,希望对大家有帮助。另外,大家口己有什么典型错误的,也可一起分享,让我们一起努力吧!o(n_n)o〜一、从最简单的漏字多字开始吧:1.1在scanf赋值时漏&,实例如下:doublearea9perimeter9a9b9c9s;printFCTnterthetriangle'sthreesideszXn11);scanf("UfUftlf",a,b,c);编译器
2、产牛如卜错误提示:snowkey.cpp(7):warningC4700:localvariableCusedwithouthavingbeeninitializedsnowkey.cpp(7):warningC4700:localvariableVusedwithouthavingbeeninitializedsnowkcy.cpp(7):warningC4700:localvariableusedwithouthavingbeeninitialized意:局部变量的使用没有被初始化1.2main函数后加;会产生一系列错误指示,系统会认为你main函数没定义,事实上,你只是多了加了个分号
3、而已,典型如下:intmain(uoid);intmain(uoid)4、C2065:h:undeclaredidentifier(4):errorC2146:syntaxerror:missingbeforeidentifier'sum1(4):errorC2065:'sum':undeclaredidentifier这几条错谋最容易谋导初学者,表面上说missing丫,事实上,是少了个逗号。事实上,“syntaxerror:missingbeforeidentifier'nn,和“h:undeclaredidentifier^要合起來理解。1.4printf函数没有用双引号括•起来:inti,nvsun;printFC*^入scanF('td-,&n);编译5、器产生如下错误提示:errorC2001:newlineinconstanterrorC2146:syntaxerror:missingbeforeidentifier'scanf意:新的一行没断开(指printf函数)语法错误,少了)在定义scanf函数而事实上,是少了”同样的道理,如果在后面漏了字母(如换行符),也会显示同样的错谋信息,要仔细查看,—•般來说,把那整行仔细检查-•遍就可发现错误原因。实例如下:printf("Enteranark:,B);scanf(**%d°,&Rark);编译器产生如下错误提示:errorC2001:newlineinconstanterro6、rC2146:syntaxerror:missing')'beforeidentifier'scanf(和上面的一样)1.5漏赋初始值直接进入循环加这种错谋时灰常致命的因为编译器往往检测不出,程序也能运行,但运行结果往往是错的。实例如下:sum=0;do{sun=n%10*sun;n-n/10;count**;}while(n?=0);printFC*位数之和为初,位数是gdfi・・,sun,count);上例中(用于求一个数的位数及位数之和的核心部分),cout未赋初始值,直接使用cout++,导致错误。然而,编译器却显示:0error(s),0warning(s)对这种隐形的错误,一7、开始总让人头疼,但有错误经验了,就知道该往哪些方向去查错了。同样的情况我还遇到过的是,使用scanf函数的时候,对于double型数据,输成/%f,导致程序语法正确,逻辑错误,检查了很久才发现。大家在初学C的吋候一定要注意double类型的输入输出格式是不同(%lf和%0。二、函数类错误2.1调用函数时,误用已赋值参数:A图doublep(intn,doublex);intmain(uoid)
4、C2065:h:undeclaredidentifier(4):errorC2146:syntaxerror:missingbeforeidentifier'sum1(4):errorC2065:'sum':undeclaredidentifier这几条错谋最容易谋导初学者,表面上说missing丫,事实上,是少了个逗号。事实上,“syntaxerror:missingbeforeidentifier'nn,和“h:undeclaredidentifier^要合起來理解。1.4printf函数没有用双引号括•起来:inti,nvsun;printFC*^入scanF('td-,&n);编译
5、器产生如下错误提示:errorC2001:newlineinconstanterrorC2146:syntaxerror:missingbeforeidentifier'scanf意:新的一行没断开(指printf函数)语法错误,少了)在定义scanf函数而事实上,是少了”同样的道理,如果在后面漏了字母(如换行符),也会显示同样的错谋信息,要仔细查看,—•般來说,把那整行仔细检查-•遍就可发现错误原因。实例如下:printf("Enteranark:,B);scanf(**%d°,&Rark);编译器产生如下错误提示:errorC2001:newlineinconstanterro
6、rC2146:syntaxerror:missing')'beforeidentifier'scanf(和上面的一样)1.5漏赋初始值直接进入循环加这种错谋时灰常致命的因为编译器往往检测不出,程序也能运行,但运行结果往往是错的。实例如下:sum=0;do{sun=n%10*sun;n-n/10;count**;}while(n?=0);printFC*位数之和为初,位数是gdfi・・,sun,count);上例中(用于求一个数的位数及位数之和的核心部分),cout未赋初始值,直接使用cout++,导致错误。然而,编译器却显示:0error(s),0warning(s)对这种隐形的错误,一
7、开始总让人头疼,但有错误经验了,就知道该往哪些方向去查错了。同样的情况我还遇到过的是,使用scanf函数的时候,对于double型数据,输成/%f,导致程序语法正确,逻辑错误,检查了很久才发现。大家在初学C的吋候一定要注意double类型的输入输出格式是不同(%lf和%0。二、函数类错误2.1调用函数时,误用已赋值参数:A图doublep(intn,doublex);intmain(uoid)
此文档下载收益归作者所有