我有以下程序:
#include<stdio.h>
int main()
{
int a[5]={5,1,15,20,25};
int i,j,m;
i=(++a[1]);
j=a[1]++;
m=a[i++];
printf(" The value of i is %d\n",i);
printf(" The value of j is %d\n",j);
printf(" The value of m is %d\n",m);
return 0;
}
根据我的概念, i 、 j 和 k 的值应分别为 2 、 2 和 15 。但是编译器将 i 、 j 的值分别显示为 3 、2 、15 吗?为什么 ?你能解释一下这个输出背后的逻辑吗?