如果你觉得本书还不错,并认同本书中的某些观点,那么我向你推荐《C 陷阱与缺陷》[2]。本书与《C 陷阱与缺陷》在内容上并没有多少相同之处,但正是通过阅读《C 陷阱与缺陷》,我才对C 语言的各种问题和现象产生了更深入的思考。《C 陷阱与缺陷》给出了控制结构中常见的三种错误,分别是:“注意作为语句结束标志的分号”、“switch 语句”和“悬挂else 引发的问题”。
关于语句结束标志的分号,我们最容易用错的一个地方就是循环语句,尤其要注意不能在for 循环语句的后面放分号,如程序6-1 第2 行。我原本想输出从0 开始的100 个数,由于有了一个分号,整个这个循环相当于在反复执行100 次空语句,然后执行一次printf,只打印出100 这一个数。
程序6-1 循环体与空语句
int i = 0;
for(;i<100;i++); /*`等价于for(;i<100;i++){;}` */
{
printf("%d\n",i);
}
while(i<100){
printf("%d\n",i);
}
do{
printf("%d\n",i);
}while(i<100);
造成这个错误的原因在于C 语言中可以定义一个空语句,
本文介绍了C语言控制结构中的常见错误,包括分号误用、switch语句漏break和悬挂else问题。强调了良好的编程习惯和理解语句块的作用域。此外,讨论了for循环的使用和边界条件的重要性,并提出避免使用goto语句的结构化编程思想。
订阅专栏 解锁全文
4774

被折叠的 条评论
为什么被折叠?



