? 연산자를 사용한 코드 설명 부탁드립니다.

vhrvnd723의 이미지

int main()
{
const char x[2][20]={"Jason", " at your service\n"};
const char *y = " Quillstone";
for (int i=0; i<3 ; i++)
cout << ((i<2)? !i ? x[i]:y :x[1]);
return 0;
}

요것인데

((i<2)? !i ? x[i]:y :x[1])

요부분 !i 요기 부분을 넘겨 해석되지가 않네요 ㅜ_ㅜ

progcom의 이미지

단순히 삼항 연산자를 반복한것 뿐입니다.

((i < 2) ? (!i ? x[i] : y) : x[1])

이렇게 괄호를 붙여주면 좀 더 알아보기 쉬우려나요? :)

참고로,
함수 (조건 ? true : false);

if (조건) {
    함수(true);
} else {
    함수(false);
}

과 동일합니다.
(함수라고 썼지만 대입이나 반환값 등에도 쓸 수 있습니다. C 구문이면 OK)
sodomau의 이미지

잡담이지만;;

!i

음.. 조금 전까지

느낌표를 어떻게 거꾸로 썼지..? 라고 고민하고 있었습니다;;

쿨럭;