我发现了一个生成有趣结果的代码片段,当我在调试别人的程序时。为了说明这种行为,我编写了一个小程序:
#include <stdio.h>
int main()
{
char* word = "foobar"; int i, iterator = 0;
for (i = 0; i < 6; i++ && iterator++)
printf("%c", word[iterator]);
return 0;
}
我知道这不是打印字符串的正确方法,这只是为了演示目的。
在这里,我期望的输出是“foobar”,但实际输出却是“ffooba”。基本上它会将第一个字符读取两次,好像第一次执行iterator++
时什么也没发生。
有人能解释一下为什么会出现这种情况吗?
i++ && iterator++
->i++, iterator++
- Mysticial