source

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

factcode 2022. 9. 6. 22:16
반응형

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

나는 가지고 있다.int포인터(즉,int *count를 사용하여 가리키는 정수를 증가시킵니다.++교환입니다.전화하려고 했는데

*count++;

그러나 빌드 경고가 "expression result unused"로 표시됩니다.할 수 있다: 콜

*count += 1;

단, 사용방법을 알고 싶습니다.++오퍼레이터도 마찬가지입니다.좋은 생각 있어요?

++는 *와 동일한 우선순위를 가지며 관련성은 오른쪽에서 왼쪽으로입니다.여기 보세요.++가 포인터와 관련지어지더라도 스테이트먼트의 평가 후에 인크리먼트가 적용되기 때문에 더욱 복잡해집니다.

발생하는 순서는 다음과 같습니다.

  1. 증가 후, 증가 후 포인터 주소 값을 임시로 기억하십시오.
  2. 증가하지 않은 포인터 주소 참조 해제
  3. 증분된 포인터 주소를 적용하여 카운트합니다. 카운트는 해당 유형의 엔티티에 대해 다음 가능한 메모리 주소를 가리킵니다.

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

 (*ptr)++

사용해보십시오.(*count)++.*count++는 다음 위치에 대한 포인터를 늘린 후 (의도하지 않은) indirection을 사용하고 있을 가능성이 있습니다.

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

반응형