int qempty()
{
return (f == r ? 1 : 0);
}
위의 스 니펫에서 " ? "는 무엇을 의미합니까? 무엇으로 대체 할 수 있습니까?
int qempty()
{
return (f == r ? 1 : 0);
}
위의 스 니펫에서 " ? "는 무엇을 의미합니까? 무엇으로 대체 할 수 있습니까?
답변:
이것은 일반적으로 조건 연산자 라고하며 다음과 같이 사용됩니다.
condition ? result_if_true : result_if_false
...로 condition
평가 true
되면 식은로 평가되고 result_if_true
그렇지 않으면로 평가됩니다 result_if_false
.
그것은이다 문법적 ,이 경우, 그것은으로 대체 할 수있다
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
참고 : 어떤 사람들 은 사용하는 언어에서 유일한 삼항 연산자 (즉, 세 개의 인수를 취하는 연산자)이기 때문에 " 삼항 연산자 " ?:
라고 합니다 .
a? b : c
에서는 [&]() -> Type { if (a) return b; else return c; }()
.
이것은 삼항 연산자이며 기본적으로 인라인 if 문입니다.
x ? y : z
같이 작동
if(x) y else z
단, 진술 대신에 표현이 있습니다. 더 복잡한 문장의 중간에 사용할 수 있습니다.
간결한 코드를 작성하는 데 유용하지만 유지 관리하기 어려운 코드를 만드는 데 남용 될 수 있습니다.
다음과 같이 다시 작성할 수 있습니다.
int qempty(){ return(f==r);}
다른 답변에서 말한 것과 동일한 작업을 수행합니다.
다음을 본 적이 있다면 참고하세요.
a = x ? : y;
표준에 대한 GNU 확장입니다 ( https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals 참조 ).
다음과 같습니다.
a = x ? x : y;
x = 1+1 ? : 0
; 2
내 컴파일러에서 올바르게 반환 하고 이것은 아무것도 불평하지 않았습니다.