나는 다음과 같은 코드를 가지고 :switch 문 및 점진
int i = 1;
int j = 0;
switch (i++)
{
case 1: j += i;
case 2: j += i;
case 3: j += i;
break;
}
printf("%d %d",i, j);
가 후행 증가 연산자입니다 때문에 i++
표현 1-i
평가, 그래서 경우 하나의 문이 평가 j
을 의미 실행됩니다 2. 다음 휴식없이, 프로그램은 다음의 모든 문장을 계속 실행합니다. i
값이 변경되지 않으므로 j
값도 변경되지 않습니다. 그래서 출력은 2 2
과 같을 것이지만 2 6
으로 밝혀졌습니다. 누구든지 제게 설명을 해주실 수 있습니까, 고마워요!
실례합니다. j + = i는 j = i + 1과 같습니다. 따라서 i (1)의 원래 값은 사례 1을 트리거하는 데 사용됩니다. 그런 다음 사례 1이 처리되기 전에 증가 된 값 (2)으로 설정됩니다. 맞습니까? – drawar
@drawar 맞습니다. –
정말 도움이됩니다. 정말 고마워요! – drawar