'?' 오른쪽에서 왼쪽으로 2 회 연속 '?' 통신 수는 그런 것과 같이 대우되어야한다, 권리? C의 연관성 및 순서 포인트
int x=-1;
int y=x?x++?x:-1:1;
내가 기대 이제
이 실행되는 등 '?'
의이 오른쪽에서 왼쪽으로 실행되고 이후 지금int y = x ? (x++?x:-1) : 1;
, 첫 번째가 발생한 경우 성명에서, X의 값은 0이고 표현은
int y= x? 0 : 1;
이 때문에 내가 y는 1 것으로 예상하지만, 내가 잘못 내 DEV-cpp.Where에 제로를 보여줍니다?
정상적인 조건부 물건처럼 ... 그것의 연관성은 어디에 있습니까? 사용되는 이유는 무엇입니까? a = b = c = 5에서와 같이 왼쪽에서 오른쪽으로해야하는 이유는 무엇입니까 ?? – nikel
질문을 이해할 수 없습니다. 연관성은 연산자의 여러 인스턴스를 그룹화하는 방법을 지정합니다. 그러나 여기서는 상관이 없습니다. b? c : d : e'는'a? (b? c : d) : e' (유효한 표현을 형성하는 절대 다른 방법은 없습니다). 이 명세서는'a?b : c','a'가 먼저 평가 된 후'b' 또는'c'가 평가됩니다. 따라서, 그 행동은 제가 답에서 묘사하는 것과 같습니다. –
나중에 ... 보통 이런 식으로 읽습니다 = a = b = c = 5. =의 조합 성은 오른쪽에서 왼쪽으로 c = 5가 실행됩니다 EARLIER ... 이것은 조합 성이 exec의 순서를 정의한다는 개념으로 이어진 것입니다 ... 괜찮아요, 연관성은 엔티티를 형성하는 그룹화를 정의합니다 .... 감사합니다 :) = b = c = 5; – nikel