반응형
포인터로 가리키는 int의 증분값
나는 가지고 있다.int
포인터(즉,int *count
를 사용하여 가리키는 정수를 증가시킵니다.++
교환입니다.전화하려고 했는데
*count++;
그러나 빌드 경고가 "expression result unused"로 표시됩니다.할 수 있다: 콜
*count += 1;
단, 사용방법을 알고 싶습니다.++
오퍼레이터도 마찬가지입니다.좋은 생각 있어요?
++는 *와 동일한 우선순위를 가지며 관련성은 오른쪽에서 왼쪽으로입니다.여기 보세요.++가 포인터와 관련지어지더라도 스테이트먼트의 평가 후에 인크리먼트가 적용되기 때문에 더욱 복잡해집니다.
발생하는 순서는 다음과 같습니다.
- 증가 후, 증가 후 포인터 주소 값을 임시로 기억하십시오.
- 증가하지 않은 포인터 주소 참조 해제
- 증분된 포인터 주소를 적용하여 카운트합니다. 카운트는 해당 유형의 엔티티에 대해 다음 가능한 메모리 주소를 가리킵니다.
2단계에서 참조된 값을 실제로 사용하지 않기 때문에 경고가 표시됩니다.@Sidarth가 말했듯이 평가 순서를 강제하려면 괄호가 필요합니다.
(*ptr)++
사용해보십시오.(*count)++
.*count++
는 다음 위치에 대한 포인터를 늘린 후 (의도하지 않은) indirection을 사용하고 있을 가능성이 있습니다.
언급URL : https://stackoverflow.com/questions/3655728/increment-value-of-int-being-pointed-to-by-pointer
반응형
'source' 카테고리의 다른 글
Java Class.cast() 대 캐스트 연산자 (0) | 2022.09.06 |
---|---|
다국어 정규 표현 단위 테스트는 어디서 볼 수 있나요? (0) | 2022.09.06 |
지정된 클래스의 모든 하위 클래스를 찾으려면 어떻게 해야 합니까? (0) | 2022.09.06 |
매개 변수의 실제 유형을 기반으로 한 메서드 선택 오버로드 (0) | 2022.09.06 |
지정된 키가 사전에 이미 있는지 확인합니다. (0) | 2022.09.06 |