개발관련/other

[C++] sizeof (x ++)가 x를 증가시키지 않을 때

Rateye 2022. 3. 29. 13:18
728x90
반응형
질문 : sizeof (x ++)가 x를 증가시키지 않는 이유는 무엇입니까?

다음은 dev C ++ 창에서 컴파일 된 코드입니다.

#include <stdio.h>

int main() {
    int x = 5;
    printf("%d and ", sizeof(x++)); // note 1
    printf("%d\n", x); // note 2
    return 0;
}

노트 1 을 실행 한 후 x 가 6이 될 것으로 예상합니다. 그러나 출력은 다음과 같습니다.

4 and 5

x 가 노트 1 이후에 증가하지 않는 이유를 누구든지 설명 할 수 있습니까?

답변

C99 표준에서 (강조는 내 것임).

6.5.3.4/2

sizeof 연산자는 피연산자의 크기 (바이트 단위)를 산출하며, 표현식 또는 유형의 괄호로 묶인 이름 일 수 있습니다. 크기는 피연산자의 유형에 따라 결정됩니다. 결과는 정수입니다. 피연산자의 유형이 가변 길이 배열 유형이면 피연산자가 평가됩니다. 그렇지 않으면 피연산자가 평가되지 않고 결과는 정수 상수입니다.

출처 : https://stackoverflow.com/questions/8225776/why-does-sizeofx-not-increment-x
728x90
반응형