当我评论语句2和3时,i
的值为2,但是当我不知道时,i
变为3.为什么会这样?
#include <stdio.h>
int main()
{
int a[5]={5,1,15,20,25};
int i,j,k=1,m;
i=++a[1]; //Statement 1
j=a[1]++; //Statement 2
m=a[i++]; //Statement 3
printf("%d %d %d",i,j,m);
return 0;
}
答案 0 :(得分:0)
m=a[i++]
会导致i
加1。 i++
部分增加i
。
答案 1 :(得分:0)
在声明3中,您的代码正在增加i
:
m = a[i++];
这更容易被注意到你将它分解为以下两行:
m = a[i];
i++;
注意:订单很重要!由于这是后递增(i++
,而不是++i
),因此首先使用i
的值,然后递增。
答案 2 :(得分:0)
在statement 1: i = a[1] + 1
之后,这意味着您要向a[1]
添加1,然后将该值存储在i
i = 2 ; a[1] = 2'
在statement 2: j = a[1]++
之后表示您向a[1]
添加1,即2 + 1
j = 2; a[1] = 3;
在statement 3: m = a[i + 1]
之后,这意味着您要为索引值添加1
我已经等于2,因此您m = a[2+1]
15
i++
,但由于您有[{1}}该操作仍然预先添加i
i =4
m = 15; i = 4; thus a[i] = 20