1、自增自减和输出函数易错点
1 #include2 int main()3 {4 int a=21,b=15;5 printf("%d\n",--a+b+10,--b+a);6 getchar();7 }
输出结果是:44
解释:在输出函数中,自增自减是优先计算的,故a减1,b减1,函数参数从左到右一次依次输出,鉴于只有一个输出格式符,故输出第一个参数。
2、switch易错点
1 #include2 int main() 3 { 4 int a=0,i; 5 for(i=1;i<5;i++) 6 { 7 switch(i) 8 { 9 case 0:10 case 3:a+=2;11 case 1:12 case 2:a+=3;13 default:a+=5;14 }15 }16 printf("%d\n",a);17 /*18 int i,a=0;19 for(i=0;i<2;i++)20 {21 switch(i)22 {23 case 0:24 case 1: a=a+2;25 }26 }27 printf("%d",a);28 */29 getchar();30 }
输出结果是:31 解释:case后面的值一旦和i相等,则执行case后所有的表达式,如果没有相等的case值,则执行default语句。