C语言常见出错专题总结.doc_第1页
C语言常见出错专题总结.doc_第2页
C语言常见出错专题总结.doc_第3页
C语言常见出错专题总结.doc_第4页
C语言常见出错专题总结.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言常见出错专题总结 时间:2010-11-10 总结:陈大龙一:主函数错误1: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 未解决外部符号_main 代码如下: #includevoid mian()原因:将main 写错写成 mian 不能正常连接处理即组建,在编译时候没有语法错误能通过,但组建就不行!改错:只要将 mian 改为 main即可2: a.cpp(6) : warning C4508: main : function should return a value; void return type assumeda.cpp(11) : error C4716: a : must return a value功能应该返回一个值, 可以返回假定的 void 类型必须返回一个值代码如下:#includeint main()int a();a();int a()原因:自定义函数里没有 return 语句,也就是没有返回一个确定的值,在主调函数里调用时,不清楚就干脆报错!改错:在自定函数里面,加上return 语句即可,或者是改为 void 函数类型,主函数里最好要加上return 语句,虽然编译不出错,但是有时候会出错3:a.cpp(5) : error C2562: main : void function returning a value a.cpp(2) : see declaration of main main中:void 函数功能正返回一个值 看主函数的声明 代码如下: #includevoid main()return 0;原因:不带返回类型的函数,不需要返回一个值,带返回类型的函数是和 return X;一起来用的改错:将 return 0;去掉,或是将void 改为 int;二:语法错误4:cpp(5) : error C2065: b : undeclared identifier错误,b 是未声明的标识符 代码如下: #includevoid main()int a=4;b=4;原因:没有对b 进行声明一个数据类型,系统不认识;改错:在b 的前面进行声明一个数据类型,如int float char等5:syntax error : missing ; before 语法错误:在“ “之前少了”;“号 代码如下: #includevoid main()int a=3原因:没有在标识符a=3的后面加分号;因为分号是程序语句结束的标志;改错:在a=3的后面加上分号即可6:D:CAa.cpp(4) : error C2059: syntax error : )D:CAa.cpp(4) : error C2143: syntax error : missing ; before 对于“) “存在语法错误 #includevoid main()if()int b=3;原因:在()里面没有任何表达式,属于典型的语法错误改错:在()里面加上表达式即可7:syntax error : missing ) before 语法错误,在“ “的前面少了” )” #includevoid main()int a=8;if(a8,原因:是少了右括号,对于if ,for,while,do-while,switch,函数的语句等会出现以上错误;改错:添加“) “即可;8:syntax error : missing before ; 语法错误,在“;“号的前面少了”“ #includevoid main()int a5;原因:少了“,对于一维数组,二维数组,多维数组可能会出现以上错误;改错:在其后面加上“即可9:D:CAa.cpp(7) : error C2046: illegal caseD:CAa.cpp(8) : error C2043: illegal break违法的case ,break语句代码如下:#includevoid main()int a=8;switch(a)case 0:break;case 1:break;原因:因为switch语句必须加上大括号,才是完整的结构语句,如果没有加上的话,属于违法,系统不认识;改错:需要在switch(X)语句后面加上大括号即可10:D:CAa.cpp(5) : error C2143: syntax error : missing : before ;D:CAa.cpp(7) : error C2143: syntax error : missing : before ;语法错误,在“;“的前面少了”:“代码如下:#includevoid main()int a=8;switch(a)case 0;break;case 1;break;原因:在switch语句中,case后面必须是 “:“,而不是分号;改错:在每个case 语句后面换成“:“即可11:error C2450: switch expression of type float is illegal switch语句中的float表达式是违法的 #includevoid main()int a=8;float f=23.8switch(f)case 0:break;case 1:break;原因:在switch语句中,后面的括号应该填入表达式的类型为整型:包括整数和字符型,其他类型都属于违法;改错:在switch语句后面的括号填入整型的表达式;12:D:CAa.cpp(6) : error C2051: case expression not constantD:CAa.cpp(10) : warning C4060: switch statement contains no case or default labels 选择表达式情况不明确开关声明不含”case”或 默认的标签#includevoid main()int a=3;switch(a)case 3+a:break;原因:对于case 语句后必须是一个常量值或是常量表达式,不能是带变量的表达式,最终的值不明确。改错:只需要在case后面的表达式改为常量或是常量值;13: error C2440: initializing : cannot convert from char 2 to char 初始化错误,不能将2个字符转化为字符 #includevoid main()char a=a;原因:不能将字符串类型赋值给单个的字符!因为他们的类型不一样,属于非法;改错:将=”a”改为a;即可14:error C2041: illegal digit 8 for base 8 错误C2041:不合法的数字的8 对于八进制而言 #includevoid main()int a=081;原因:虽然可以用二进制,八进制,十六进制赋值给int型,但八进制是用0-7进行表示的,0的后面是小于8的数字,所以是非法改错:只要是小于8的即可前面是0表示的八进制数。15:出现对话框,显示该内存不能为”writtrn”; 在输入scanf函数的时候,忘记变量的地址符&#includevoid main() char num;scanf(%d,num);原因:因为没有地址符,所以不能存放数据到电脑内存中,所以就会报内存错误;改错:在变量的前面加上地址符&即可16:虽然加了条件判读语句。但没有出所要的结果; 虽然语法没有错误,但出现逻辑错误#includevoid main() if(12); printf(This is true!n);原因:在if 语句的后面加上了不该加的;号,相当于执行了空语句!改错:把“;”去掉即可!17:error C2065: b : undeclared identifier 错误,b是未声明的标识符#includevoid main()int a=4,B=3;if(ab)printf(%dn,b);原因:在程序中有一个大写的B和小写的b,使用b的时候,没有进行声明,误把大写的B当做小写的b;改错:把变量的声明和定义改成一致即可!18:没有出现正确的结果,结果与要求不符合 逻辑错误#includevoid main()int a=1;if(a=2)printf(%d n,a);原因:误将a=2,当做a=2,将赋值表达式当做关系表达式,a=2当做a为非1的数据,永远为真!当a=2返回一个逻辑值为假.改错:将a=2,改为a=2;19:数组的最后一个元素值是莫名奇妙的值; 数组下标越界,访问不到元素值,返回系统默认值#includevoid main()int a5=23,56,78,0,12;for(int i=0;i=5;i+)printf(%d ,ai);原因:数组的下标从0开始计算,所以最后的5是根本访问不到,系统会给一个默认值,但不可预测;改错:将=5改为5即可,如果从0开始计算的话,一般是到最大长度减一20:E:CAa.cpp(3) : error C2065: add : undeclared identifierE:CAa.cpp(5) : error C2373: add : redefinition; different type modifiers 错误:add未进行声明 错误:add 需要重新界定,他是不同的类型#includevoid main()printf(%d n,add(2,4);int add(int a,int b)return a+b;原因:没有对自己定义的函数进行声明,所以系统不认识!改错:1,把函数放在调用函数的前面进行声明,或是将函数放在主函数前面进行定义!21:E:CAa.cpp(4) : error C2660: add : function does not take 1 parameters 错误,功能函数没有只取一个参数#includevoid main()int add(int a,int b);printf(%d n,add(2);int add(int a,int b)return a+b;原因:在函数调用的时候,填入的参数与自己定义的不相同,少了一个参数;改错:在调用的时候,要注意填入两个参数,也就是与自己定义的函数的参数类型一致,个数相同。22:E:CAa.cpp(7) : error C2065: add : undeclared identifier 未对add函数进行声明定义int ads(int a,int b)return a+b;#includevoid main()printf(%d n,add(2,3);原因:在主调函数里调用了没有定义的add函数;改错:在调用add函数之前,要进行声明定义,将ads改为add23

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论