반응형
C의 i++와 (i)++의 차이
int i = 3;
int j = (i)++;
대
int i = 3;
int j = i ++;
위의 두 사례의 평가방법에 차이가 있습니까?
첫 번째 케이스는 r값의 증분에 상당합니까, 아니면 정의되지 않은 동작입니까?
i++
그리고.(i)++
똑같이 행동하다C 2018 6.5.1 5는 다음과 같이 말한다.
괄호로 묶인 표현식이 주요 표현식입니다.유형 및 값은 부모 없는 식과 동일합니다.부모화되지 않은 식이 각각 l값, 함수 지정자 또는 void 식인 경우 lvalue, 함수 지정자 또는 void 식입니다.
그 표현은 C 1999와 같다.
이 간단한 예에서는i++
대(i)++
Eric Expischil의 답변에서 언급되었듯이, 차이는 없습니다.
단, 이 차이는 포인터 변수를 참조할 때 실제로 의미가 있습니다.*
연산자와 증분 연산자를 사용합니다.*p++
그리고.(*p)++
.
전자의 문은 포인터를 폐기한 후 포인터 자체를 증가시킵니다.후자의 문은 포인터를 폐기한 후 참조된 값을 증가시킵니다.
언급URL : https://stackoverflow.com/questions/54908480/difference-between-i-and-i-in-c
반응형
'programing' 카테고리의 다른 글
Vue Chart.js 구성 요소가 렌더링되지 않음 (0) | 2022.08.29 |
---|---|
VisualStudio2010년 명령줄 인수를 전달하면? (0) | 2022.08.29 |
페이지를 새로 고친 후 Vuex가 검색되지 않는 이유는 무엇입니까?(nuxt) (0) | 2022.08.29 |
조롱당한 방법을 만들면 그에 전달된 인수를 반환한다. (0) | 2022.08.29 |
vue 루프에서 요소의 색상을 동적으로 변경 (0) | 2022.08.29 |