Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 ++*p, *p++ 및 *++p의 차이점

<시간/>

이 섹션에서는 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'입니다.

예시 코드(C++)

#include<iostream>
using namespace std;
int main() {
   char arr[] = "Hello World";
   char *ptr = arr;
   *ptr++;
   cout << *ptr;
   return 0;
}

출력

e

따라서 여기에서 처음에 ptr은 'H'를 가리킵니다. *ptr++을 사용한 후에는 포인터를 증가시키므로 ptr은 다음 요소를 가리킬 것입니다. 결과는 '''입니다.

예시 코드(C++)

#include<iostream>
using namespace std;
int main() {
   char arr[] = "Hello World";
   char *ptr = arr;
   *++ptr;
   cout << *ptr;
   return 0;
}

출력

e

이 예제에서도 ++를 사용하여 ptr을 증가시키고 있습니다. 여기서 사전 증가 ++의 우선 순위가 더 높으면 포인터를 먼저 증가시킨 다음 *를 사용하여 값을 취합니다. 그래서 '''를 출력하고 있습니다.