2013-11-10 2 views
3

제 질문은 길지 않지만 저에게는 당황 스럽습니다. 나는 (그리고 나는 합법적으로 그렇게 생각하는) 사람들이 배우는 언어의 모든 규칙을 알고 싶어한다. 나는 언어가하는 일을 왜하는지 알고 싶다.C에서 우선 순위와 ++ 및 * 단항 ​​연산자와 관련된 문제

i 포인터가 아닌 ++*i의 값이 *i인데 왜 증가합니까? 사전 증가 연산자는 간접 참조 연산자보다 우선 순위가 높습니다. 그것은 상식적인 것 같지만 다시, 나는 정확히 그 이유를 알아야합니다. 가능한 경우 참조 자료를 제공하십시오.

답변

3

프리픽스 ++ 단항 *와 동일한 우선 순위를 갖지만 * 단항 연산자보다 후위 ++ HSA 높은 우선 순위가. ++ *i 컴파일러 경우
포인터의 값을 변경하지 않고, 간접 참조 값을 증분을 사용 i 역 참조

수단
++ (*i); 

로 해석한다.

+0

매뉴얼에는 종종 접미사와 접두어 연산자의 우선 순위가 같지만 연관성에 따라 사람의 권리와 관련이없는 것으로 나타납니다. – Subsentient

5

*(++i)으로 구문 분석 할 수 없습니까? 그런데

, * 접두사 ++는 같은 우선 순위 및 오른쪽에서 왼쪽으로 연관성 있습니다.

+0

그건 의미가 있습니다. 방금 설명서에 오타가 있음을 확인했습니다. ++는 *보다 높습니다. – Subsentient

+0

Postfix ++ (사후 증가)가 높으면 접두어 ++ (선행 증가)가 아닙니다. – Inspired

관련 문제