switch选择结构问题
今天做了一道有关switch的程序题,原题如下:下面程序的输出是:
#define PR(ar) printf(" %d ",ar)
#include <stdio.h>
void main()
{
int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3;j;j--)
{
switch(j)
{
case 1:
case 2:PR(*p++);break;
case 3:PR(*(--p));
}
}
}
我分析出来,结果为 9 11
但上机一运行,结果是 9 9 11
没想清楚第二个9是怎么出来的?我是这样分析的:先执行case 3,结果得9,之后执行j--,判断j值变为2,再执行case 2:PR(*p++);break;结果为11
请各位大侠们指点,谢谢啦!