C语言求教该程序详细解释,为何结果为3呢?

#include "stdio.h"
main()
{
int k=0;char c='A';
do
{
switch(c++)
{
default:k=k*2;break;
case'A':k++;break;
case'B':k--;
case'C':k+=2;break;
case'D':k=k%2;continue;
}
k++;
}while(c<'F');
printf("k=%d\n",k);

}
/*
程序运行结果为:
k=3
*/
C语言求教该程序详细解释,为何结果为3呢?

switch的C++这个句子实际上并没有在switch中执行,而是在switch之后执行,建议你好好看看++和--的运算规则,这两个运算放在变量后面的话就会放在这个顺序点的最后进行运算,即放在离他最近的一个分号之前。因此尽管switch的条件是C++,但switch所使用的C变量的值仍然是‘A’。

注意先加加和后加加的区别

注意先加加和后加加的区别