C语言易错点

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语句。

原文地址:https://www.cnblogs.com/joeshine/p/4355644.html