program story

포인터가 가리키는 int의 증가 값

inputbox 2020. 11. 15. 11:17
반응형

포인터가 가리키는 int의 증가 값


나는이 int포인터를 (즉, int *count) 내가 사용에서 지적되는 정수 증가 할 것으로 ++연산자를. 나는 내가 전화 할 것이라고 생각했다.

*count++;

그러나 "expression result unused" 라는 빌드 경고가 표시 됩니다. 나는 할 수있다 : 전화

*count += 1;

하지만 ++연산자 사용법도 알고 싶습니다 . 어떤 아이디어?


++는 *와 동일한 우선 순위를 가지며 연관성은 오른쪽에서 왼쪽 입니다. 여기를 참조 하십시오. ++가 포인터 와 연관 되더라도 증분이 명령문의 평가 후에 적용 되기 때문에 훨씬 더 복잡해졌습니다 .

순서는 다음과 같습니다.

  1. 포스트 증가, 포스트 증가 포인터 주소 값을 임시로 기억하십시오.
  2. 비 증가 포인터 주소 역 참조
  3. count에 증가 된 포인터 주소를 적용하고 count는 이제 해당 유형의 엔티티에 대해 가능한 다음 메모리 주소를 가리 킵니다.

2 단계에서 역 참조 된 값을 실제로 사용하지 않기 때문에 경고가 표시됩니다. @Sidarth가 말한 것처럼 평가 순서를 강제하려면 괄호가 필요합니다.

 (*ptr)++

을 사용해보십시오 (*count)++. *count++포인터를 다음 위치로 증가시킨 다음 간접적 (의도하지 않음)을 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/3655728/increment-value-of-int-being-pointed-to-by-pointer

반응형