1):空语句
int a = 3
if(a = 3);//这符合语法规范,表示什么都没有干
2):如果if后的代码块只有一个,或者if之后只有一句话那么大括号可以省略,只会影响相邻的一个代码块,不影响其他代码块
if(a>2) printf("a>2");
3):永真试和永假试
if(0){ } //大括号内的值永远不执行 if(1){ } //大括号内的值永远执行
4):if中的return 0
if(a=3)
return 0;
printf("a>3");//如果出现return 0;则以此为结束点,以后的所有语句都不会执行, 则不会打印a>3
if(a<3)
return 0;
printf("a>3");//这时候会打印a>3,因为a<3为假所以把return 0省略掉,之后的所有语句会打印
5):if 的作用域的问题
int num = 0,a = 0
if(a==3){int num = 5;}
print("num = %d\n",num);//此时会报错,以为num在大括号内,运行完后就释放掉了,之后没有num的值
6):作用域的紊乱
if(a==3) int num =5;//此时会报错
可以改成
if(a==3){ int num =5;}//大括号里面表示我定义了一个变量没有用
|