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
반응형
'개발관련 > other' 카테고리의 다른 글
Bash에 변수가 설정되어 있는지 확인하는 방법 (0) | 2022.03.29 |
---|---|
Vim에 텍스트를 붙여 넣을 때 자동 들여 쓰기 끄기 (0) | 2022.03.26 |
빈 Pandas DataFrame을 만든 다음 채우는 방법 (0) | 2022.01.17 |
'yield return'의 적절한 사용법 (0) | 2022.01.17 |
.NET Framework에서 Math.Pow ()를 구현하는 방법 (0) | 2022.01.17 |