- 9
- 0
- 约1.05万字
- 约 14页
- 2018-08-30 发布于湖北
- 举报
王牌9
以下“解决方案”中的内容对应的是“错误举例”中内容的解决方法。
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;
p = q;
1
}
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,4
输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab 。
②scanf( %d,%d ,a,b);
C 规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时
应输入与这些字符相同的字符。下面输入是合法的:
3,4
此时不用逗号而用空格或其它字符是不对的。
34 3:4
又如:
2
王牌9
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;
printf(%d, *p);
您可能关注的文档
最近下载
- 2024-2025学年上海市普陀区六年级下学期数学期末试题含详解.pdf VIP
- 制造业企业员工高离职率分析.pdf VIP
- GB50461-2024:石油化工静设备安装工程施工质量验收规范.pptx VIP
- 三江A116火灾报警控制器简易操作规程.docx
- (新版)社会体育指导员理论知识考试题库(含答案).docx VIP
- DB31T 1104-2018 城市轨道交通导向标识系统设计规范.docx VIP
- 2023年浙江省军队转业干部录用考试试题.docx VIP
- 口渴了-朋友帮你.ppt VIP
- Xikong西莱克低温机控制板SHXK814用户手册.pdf
- 爱迪生牛顿大发明攻略.doc VIP
原创力文档

文档评论(0)