#include<stdio.h>
main()
{
int i;
for(i=0;i<0,5;i++)
printf("%d\n",i);
}
Run Code Online (Sandbox Code Playgroud)
我只想在for循环的条件下解释"i <0,5".
即使我把它设为"i> 0,5",我们也得到相同的输出.
有人可以解释一下这种情况是如何起作用的.(使用逗号运算符的条件,我已经搜索过http://en.wikipedia.org/wiki/Comma_operator但根本没有帮助)
Mih*_*ncu 17
逗号运算符将始终生成逗号分隔列表中的最后一个值.
基本上它是一个二元运算符,它评估左手值但丢弃它,然后计算右手值并返回它.
如果链接其中的多个,它们最终会产生链中的最后一个值.
根据anatolyg的评论,如果你想在右手值之前评估左手值(如果左手评估具有理想的副作用),这将非常有用.
例如i < (x++, x/2),使用该运算符是一种理智的方式,因为左手值评估会影响右手值.
http://en.wikipedia.org/wiki/Comma_operator
int x = 100;
while(x --> 0) {
// do stuff with x
}
Run Code Online (Sandbox Code Playgroud)
这只是另一种写作方式x-- > 0.
P.P*_*.P. 10
逗号运算符计算i<0Or i>0并忽略.因此,它始终5存在于条件中.
所以它相当于:
for(i=0;5;i++)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7434 次 |
| 最近记录: |