C常见错误及解决方案.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C常见错误及解决方案

C常见错误及解决方案 C 常见错误及解决方案 以下“解决方案”中的内容对应的是 “错误举例”中内容的解决方法。 1. 把 “=”误当作 “==”使用  错误举例 ect.top = rect.bottom) { MessageBox(hwnd, Invalid rectangle!, NULL, MB_OK | MB_ICONERROR); }  解决方案 因为条件判断误写成了赋值,上面的判断将永远为真,除非rect.bottom 为零。 比较低级却又难以发现的错误。说它低级是因为它属于再基本不过的语法问题;而它之 所以难以发现是因为它不会产生编译错误,唯有在调试过程中跟踪执行才会发现。通常它导 致的后果是某一个条件判断失效或者进一步导致死循环。 2. 使用已释放了的指针  错误举例 最常出现在释放链表时。初学者容易这样写: while (p) { delete p; p = p-next; }  解决方案 这样是很危险的。正确的方法是: while (p) { q = p-next; delete p; 1 C常见错误及解决方案 p = q; } 3. 在定义数组时,将定义的“元素个数”误认为是可使的最大下标值。  错误举例 main() {staticinta[10]={1,2,3,4,5,6,7,8,9,10}; printf( %d ,a[10]); }  解决方案 C 语言规定:定义时用a[10],表示a 数组有 10 个元素。其下标值由0 开始,所以数组 元素a[10]是不存在的。 4. 输入数据时,企图规定精度。  错误举例 scanf( %7.2f ,a);  解决方案 这样做是不合法的,输入数据时不能规定精度。 5. 输入数据的方式与要求不符。  错误举例 ①scanf( %d%d ,a,b); 输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法: 3, 输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab 。 ②scanf( %d,%d ,a,b); C 规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时 应输入与这些字符相同的字符。下面输入是合法的: 3, 此时不用逗号而用空格或其它字符是不对的。 : 2 C常见错误及解决方案 又如: scanf( a=%d,b=%d ,a,b); 输入应如以下形式: a=3,b=4 6. 混淆字符和字符串的表现形式  错误举例 char sex; sex=”M”; …  解决方案 sex 为字符变量,只能存放一个字符。而字符常量的形式是用单撇号括起来的,应改为 sex= ‘M’; “M ”使用双撇号括起来的字符串,它包括两个字符:‘M ’和‘\0’,无法存放到字符变 量sex 中。 7. 赋值写法错误:  错误举例 /*this program is wrong*/ int main(void) { int x, *p; x = 10; p = x;

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档