Я видел несколько очень странных циклов for
при чтении кода других людей. Я пытаюсь найти полное синтаксическое объяснение цикла for
в C
, но это очень сложно, потому что слово "for
" появляется в несвязанных предложениях, что делает поиск практически невозможным для Google.
Этот вопрос пришел мне на ум после прочтения этой темы, из-за чего мне снова стало любопытно.
for
здесь:
for(p=0;p+=(a&1)*b,a!=1;a>>=1,b<<=1);
В среднем состоянии есть запятая, разделяющая две части кода, что делает эта запятая? Запятая с правой стороны я понимаю, поскольку она делает как a>>=1
, так и b<<=1
.
Но в рамках условия выхода из цикла, что происходит? Выходит ли он, когда p==0
, когда a==1
или когда оба происходят?
Было бы здорово, если бы кто-нибудь мог помочь мне понять это и, возможно, указать мне в сторону полного описания синтаксиса цикла for
.