This question already has answers here:
What does the comma operator , do?
(8个答案)
6年前关闭。
我不明白这是如何运作的以及为什么会产生
以下输出。
这给出作为输出:
将
在循环中,后增量
(8个答案)
6年前关闭。
我不明白这是如何运作的以及为什么会产生
以下输出。
int main()
{
int i=0;
int a=5;
int x=0;
for(i=0; i<5; x=(i++,a++))
{
printf("i=%d a=%d x=%d\n",i,a,x);
}
}
这给出作为输出:
i=0 a=5 x=0
i=1 a=6 x=5
i=2 a=7 x=6
i=3 a=8 x=7
i=4 a=9 x=8
最佳答案
暂时忘记++
,它们只是分散注意力。
int a = 5;
int i = 0;
int x = (i, a);
将
x
的值设置为5。评估并丢弃i
,然后评估a
并将其分配给x
。在循环中,后增量
a++
会执行其始终执行的操作;返回当前值,然后递增变量。因此,x
在增加a
的值之前先取其值,然后a
的值增加1。因为还对i++
进行了评估,所以其值也增加了。关于c - for(i = 0; i <5; x =(i++,a++))的工作原理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24957383/
10-11 21:13