0
#include<stdio.h>
void main()
{
int a,b,c,d;
a=b=c=d=1;
a=++b>1 || ++c>1 && ++d>1;
printf("%d%d%d%d",a ,b ,c ,d);
}
GCC 컴파일러에서 위의 코드의 대답은 왜 그런지 1211가, 누군가가 나를 설명 할 수있다 나에게이 코드의 답을 exlpain 수 있습니까? 여기 a=++b>1 || ++c>1 && ++d>1;
사람은 다
연산자 우선 순위 및 * 단락 회로 평가 *에 대해 읽어보십시오. 그러나 나는이 법의 저자로부터 컴퓨터를 사용하도록 법으로 제한 할 것입니다. –
'++ b'는'b'를'2'로 증가시키기 때문에 b가'> 1'이되어 전체 표현식이 참이되므로'a'에'1'이 할당됩니다. 'c'와'd'는 나머지 표현식을 평가할 필요가 없으므로 변경되지 않습니다. –
@EugeneSh. 그것은 프로그래밍 언어의 게으름을 언급하지 않는다? –