받는 따르면 운영자 우선 순위 , 콤마 연산자는 보다 낮은 우선 가지고 operator=
있으므로 x = 2,3;
등가이다 (x = 2),3;
. (연산자 우선 순위는 우선 순위에 따라 연산자가 다른 연산자보다 더 단단하거나 느슨한 방식으로 인수에 바인딩되는 방식을 결정합니다.)
쉼표식이 (x = 2),3
아니라 여기에 2,3
있습니다. x = 2
처음에 평가되고 (그리고 그 부작용이 완료 됨) 결과가 폐기 된 다음 3
평가됩니다 (실제로 아무 작업도 수행하지 않음). 그래서의 값 x
이 2
. 주 3
전체 쉼표 표현 (즉,의 결과는 x = 2,3
)에 할당하는 데 사용되지 않습니다 x
. (변경 그것은하는 x = (2,3);
, x
할당됩니다 3
.)
를 들어 return 2,3;
, 쉼표 표현은 2,3
, 2
다음 평가의 결과는 폐기하고 3
평가에 의해 반환되는 전체 쉼표 표현의 결과로 반환 return 문 이상.
식 및 문 에 대한 추가 정보
표현식은 계산을 지정하는 일련의 연산자와 해당 피연산자입니다.
x = 2,3;
is expression statement , x = 2,3
은 여기에있는 표현식입니다.
세미콜론이 뒤에 오는 표현식은 명령문입니다.
통사론: attr(optional) expression(optional) ; (1)
return 2,3;
는 점프 문 ( return 문 )이며 2,3
여기에있는 표현식입니다.
통사론: attr(optional) return expression(optional) ; (1)