i++와++i의 차이
앞에 쓰다
문제를 쓸 때++i를 i++로 썼던 것을 기억합니다. 아무리 디버깅을 해도 QAQ가 맞지 않습니다. 일이 끝난 후에도 잘 모르겠습니다.
1. 할당 순서
i++가 실행될 때 이렇게 실행됩니다: 먼저 값을 부여한 다음에 값을 추가합니다
코드로 표시
a = i++; ------------> a = i; i = i + 1;
++i는 실행할 때 이렇게 실행됩니다: 먼저 값을 추가하고 값을 부여합니다
코드로 다음을 나타냅니다.
a = ++i --------------------> i = i + 1; a = i;
i++는 다른 일을 먼저 하고 자기가 하고++i는 자기가 하고 다른 일을 하는 것으로 형상적으로 이해된다
예를 들어 i=3, a=i++ 하면 a=3, 완성되면 i를 4로 만들고, a=++i는 i++를 4로 만들고, 그 다음에 a=4
2. 효율
i++;++i;C 언어 코드로 볼 때 i++와++i는 모두 한 줄밖에 없는데, 마치 양자의 실행 효율이 같은 것 같습니까?신지현: 나같은 꼬부랑이도 아닌거 알면서.
먼저 다음 코드를 살펴보겠습니다.
int i,a,b;
i = 0;
a = i++;
i = 0;
b = ++i;
상기 C 언어 코드에 대응하는 어셈블리 코드를 보면 j=i++를 볼 수 있다.컴퓨터는 k=++i를 실행하는 것보다 네 가지 명령을 설명해야 한다.지령이 하나 더 나왔다.더 많은 명령은 다음과 같다. i에 대한 추가 작업을 실행하기 전에 i의 현재 값을 저장하고 나중에 사용하십시오. (부여 값은 a)그래서++i의 효율은 i++보다 높다
3. 왼쪽과 오른쪽
아마도 많은 사람들이 왼쪽값이 무엇인지 모를 것이다. 말하자면 왼쪽값은 부치부호의 왼쪽에 놓을 수 있는 변수이고 오른쪽값은 왼쪽값이 아닌 모든 식의 값이다.
그러나 부여될 수 있는 값은 왼쪽과 오른쪽을 구분하는 근거가 아니다.예를 들어 C++의const 왼쪽 값은 부여할 수 없습니다.오른쪽 값은 값을 부여할 수 있습니다.왼쪽 값과 오른쪽 값의 근본적인 차이는 주소 & 연산자가 대응하는 메모리 주소를 얻을 수 있는지 여부입니다.
i++는 왼쪽 값이 될 수 없고,++i는 가능합니다!!!
예를 들어 다음 코드는 다음과 같습니다.
i++ = a; //
++i = a //
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.