이 섹션에서는 C++에서 *ptr++, *++ptr 및 ++*ptr의 차이점이 무엇인지 알아보겠습니다.
여기에서 우리는 C 또는 C++에서 postfix++와 prefix++의 우선순위를 볼 것입니다. 접두사 ++ 또는 --의 우선 순위는 역참조 연산자 '*'보다 우선 순위가 높고 ++ 또는 -- 접미사 우선 순위는 접두사 ++ 및 역참조 연산자 '*'보다 우선 순위가 높습니다.
ptr이 포인터이면 *ptr++는 *(ptr++)을 나타내고 ++*prt는 ++(*ptr)
를 나타냅니다.예시 코드
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; ++*ptr; cout << *ptr; return 0; }
출력
I
따라서 여기에서 처음에 ptr은 'H'를 가리킵니다. ++*ptr을 사용하면 H가 1 증가하고 이제 값은 'I'입니다.
예시 코드
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *ptr++; cout << *ptr; return 0; }
출력
e
따라서 여기에서 처음에 ptr은 'H'를 가리킵니다. *ptr++을 사용한 후에는 포인터가 증가하므로 ptr은 다음 요소를 가리킵니다. 결과는 '''입니다.
예시 코드
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *++ptr; cout << *ptr; return 0; }
출력
e
이 예제에서도 ++를 사용하여 ptr을 증가시키고 있습니다. 여기서 사전 증가 ++의 우선 순위가 더 높으면 포인터를 먼저 증가시킨 다음 *를 사용하여 값을 취합니다. 그래서 '''를 출력하고 있습니다.