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

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

DDD
DDD원래의
2024-12-23 21:07:14592검색

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

포인터 표현식 이해: ptr, ptr 및 *ptr

C 프로그래밍에서 이 세 가지 표현식은 일반적으로 포인터와 포인터가 가리키는 값을 조작하는 데 사용됩니다. 포인터를 효과적으로 사용하려면 동작을 이해하는 것이 중요합니다.

1. *ptr

  • 이 표현식은 효과적으로 포인터를 먼저 역참조하여 포인터가 가리키는 값을 반환합니다.
  • 그런 다음 포인터를 증가시킵니다. 한 단위씩 배열의 다음 요소나 배열의 다음 문자를 가리킵니다. string.
  • 예를 들어 ptr이 배열의 첫 번째 요소를 가리키는 경우 *ptr은 해당 요소의 값을 반환한 다음 두 번째 요소를 가리키도록 ptr을 증가시킵니다.

2. * ptr

  • 이전 표현식과 달리 이 표현식은 먼저 포인터를 1씩 증가합니다.
  • 그런 다음 포인터를 역참조합니다. 포인터가 현재 가리키는 값을 반환합니다.
  • 이것은 다음과 같은 경우에 유용합니다. 현재 포인터를 역참조하지 않고 다음 요소의 값에 액세스해야 합니다.

3. *ptr

  • 이 표현식은 ptr이 가리키는 위치의 값을 직접 증가시킵니다.
  • 먼저 포인터를 역참조합니다, 그것이 가리키는 값을 반환합니다.
  • 그런 다음, 값을 한 단위씩 증가시킵니다.
  • 이는 다음이 가리키는 값을 수정하는 데 사용할 수 있습니다. ptr.

예:

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;

printf("%d ", *ptr++); // Prints 1 and increments ptr to the second element
printf("%d ", *++ptr); // Increments ptr to the third element and prints 3
printf("%d\n", ++*ptr); // Increments the value at the third element and prints 4

출력:

1 3 4

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

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