>백엔드 개발 >C++ >C에서 `ptr`, ` ptr`, ` *ptr` 및 `(*ptr) `의 차이점은 무엇입니까?

C에서 `ptr`, ` ptr`, ` *ptr` 및 `(*ptr) `의 차이점은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 03:52:13461검색

What's the Difference Between `ptr  `, `  ptr`, `  *ptr`, and `(*ptr)  ` in C  ?

포인터: ptr , ptr 및 *ptr

이러한 포인터 표현식은 혼동을 주는 경우가 많으므로 명확하게 설명하겠습니다. 의미:

1. *ptr :

  • 포인터 ptr을 역참조하고 가리키는 값을 반환합니다.
  • 포인터 ptr을 증가시켜 다음 요소를 가리킵니다.

예:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *ptr++; // Outputs 1 and then points to the next element (2)

2. * ptr:

  • 포인터 ptr을 먼저 증가시켜 다음 요소로 이동합니다.
  • 그런 다음 업데이트된 포인터를 дереференсирует하여 가리키는 값을 반환합니다.

예:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *++ptr; // Moves the pointer to the next element and outputs 2

3. *ptr:

  • 포인터 ptr을 역참조하여 가리키는 값을 반환합니다.
  • 그런 다음 역참조된 값을 증가시킵니다.

주의: 포인터가 아닌 값을 증가시킵니다. ptr.

예:

int *ptr = new int(5); // Points to a dynamically allocated integer
cout << ++*ptr; // Outputs 6 and updates the dereferenced integer to 6

4. 보너스: (*ptr) :

  • 지정된 값을 얻는 ptr의 역참조를 강제합니다.
  • 역참조된 값을 증가시킵니다.

주의: *ptr과 유사하며, 포인터 자체가 아닌 값입니다.

예:

int *ptr = new int(5);
cout << (*ptr)++; // Outputs 5 and updates the dereferenced integer to 6

위 내용은 C에서 `ptr`, ` ptr`, ` *ptr` 및 `(*ptr) `의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.