for在阅读其他人的代码时,我看到了一些非常奇怪的循环.我一直在尝试搜索for循环的完整语法解释,C但这很难,因为单词" for"出现在不相关的句子中,使得搜索几乎不可能有效地进行Google.
在for这里:
for(p=0;p+=(a&1)*b,a!=1;a>>=1,b<<=1);
Run Code Online (Sandbox Code Playgroud)
在中间条件下有一个逗号分隔两段代码,这个逗号有什么作用?右边的逗号我理解,因为它使得a>>=1和b<<=1.
但是在循环退出条件下,会发生什么?它是在何时p==0,何时a==1或何时发生时退出?
如果有人能帮助我理解这一点并且可能指向完整for循环语法描述的方向,那将是很棒的.
我对C语言中的for循环问题感到困扰.
我写的时候:
#include<conio.h>
#include<stdio.h>
main()
{
int i = 0;
for( ; i ; )
{
printf("In for Loop");
}
getch();
}
Run Code Online (Sandbox Code Playgroud)
输出:没有打印.
代码执行,但printf语句由于条件没有打印.好的,这里没问题.
但是当我写这段代码时:
#include<conio.h>
#include<stdio.h>
main()
{
for( ; 0 ; )
{
printf("In for Loop");
}
getch();
}
Run Code Online (Sandbox Code Playgroud)
输出:输入循环.
我的for循环执行了一次,但实际上它一定不能被执行.我不知道为什么?stackoverflow的编码器/程序员/黑客可以帮助我.请解释一下,为什么我的for循环只给出一次这个输出.