陷阱1:
#include<stdio.h>
int main()
{
int a=10;
if(a==0)/*如果这里写成a=0,那if语句就等于是if(0),这个if语句会永远不成立,跟原来目的“验证a是都等于0”背道而驰了,以后在写a==0时可以写成 0==a,如果不小心少些一个=,编译器会报错,也方便寻找,所以切记:=是赋值,==是等号*/
{
printf("a等于0");
}
else
{
printf("a不等于0");
}
return 0;
}
陷阱2:
#include<stdio.h>
int main()
{
inta=10;
a=5;/*这里a=5是要给a赋值为5,如果不小心写成a==5,那么赋值失败,输出结果会依然是a为10*/
printf("%d\n",a);
return 0;
}
陷阱3:
#include<stdio.h>
int main()
{
if(5>6)/*如果这里不小心写了分号,那么这个if对下面代码块的影响就没了,就成了独
立的代码块了*/
{
printf("A\n");
}
return 0;
}
陷阱4:
#include<stdio.h>
int main()
{
if(5>6)
{
int a=7;
}
printf("%d\n",a);//这样输出不了a的值,因为printf函数在不大括号内(作用域)
return 0;
}
陷阱5:
#include<stdio.h>
int main()
{
if(5>6)//如果想在if语句后定义变量,必须用大括号
int a=7;
printf("%d\n",a);/*代码是错误的,作用域不明确,if语句后的代码应该在大括号内
return 0;
}
|