>  기사  >  백엔드 개발  >  i++와 ++i의 차이점과 예제

i++와 ++i의 차이점과 예제

angryTom
angryTom원래의
2020-02-28 10:43:5064516검색

i++와 ++i의 차이점과 예제

i++ 및 ++i 차이점 및 예

i++ 및 ++i 명령 차이점은 다음과 같습니다.

1 할당 순서가 다릅니다

++ i가 먼저 추가된 다음 i가 할당됩니다. ++가 먼저 할당된 다음 추가되며 ++i와 i++는 모두 두 단계로 완료됩니다.

다음 단계에서 ++i가 할당되므로 계단식 할당을 위한 변수로 사용할 수 있습니다. ++i = a =b, 즉 ++i는 lvalue입니다. i++의 다음 단계는 자동입니다. 증분, lvalue가 아닙니다.

이미지에 대한 이해는 i++가 먼저 다른 일을 한 다음 자신에게 1을 더하고, ++i는 먼저 자신에게 1을 더한 다음 다른 일을 한다는 의미일 수 있습니다.

추천 학습: c 언어 비디오 튜토리얼

예:

a = ++i, i=i+1과 동일 a = i++, a = i; i =i+1;

2. 효율성이 다릅니다

예를 들어 i=3, b=i++는 b=3을 의미하고, 완료 후 i가 4가 되도록 하고, b=++i는 먼저 i++를 의미합니다. 4가 되면 b=4가 됩니다. 여기서 ++i는 i++보다 더 효율적입니다. 일반적으로 루프 영역에서는 둘 사이에 큰 차이가 없지만, 프로그램 흐름에서 생명주기와 i 값의 변화에 ​​주의해야 합니다.

3. i++는 lvalue로 사용할 수 없지만 ++i는 사용할 수 있습니다.

lvalue는 메모리에 특정 저장 주소를 가진 객체에 해당하는 표현식의 값이고, rvalue는 lvalue가 아닌 모든 표현식의 값입니다. 일반적으로 lvalue는 할당 기호의 왼쪽에 배치할 수 있는 변수입니다.

그러나 값을 할당할 수 있는지 여부는 lvalue와 rvalue를 구별하는 기준이 아닙니다. 예를 들어 C++의 const lvalue는 할당할 수 없지만 임시 객체인 rvalue는 할당할 수 있습니다. lvalue와 rvalue의 근본적인 차이점은 주소 및 연산자가 해당 메모리 주소를 얻을 수 있는지 여부입니다.

예:

int i = 0;
int *p1 = &(++i);//正确
int *p2 = &(i++);//错误
++i = 1;//正确
i++ = 1;//错误

PHP 중국어 웹사이트, 다수의

프로그래밍 입문

튜토리얼, 학습을 환영합니다!

위 내용은 i++와 ++i의 차이점과 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.