1、自增自减和输出函数易错点
1 #include<stdio.h> 2 int main() 3 { 4 int a=21,b=15; 5 printf("%d ",--a+b+10,--b+a); 6 getchar(); 7 }
输出结果是:44
解释:在输出函数中,自增自减是优先计算的,故a减1,b减1,函数参数从左到右一次依次输出,鉴于只有一个输出格式符,故输出第一个参数。
2、switch易错点
1 #include<stdio.h> 2 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 ",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语句。