Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 printf에서 %p 형식 지정자의 역할과 사용법

C 언어에는 다양한 형식 지정자(format specifier)가 존재합니다. 그중에서도 이번 글에서는 %p라는 형식 지정자에 대해 알아보겠습니다.

%p는 포인터(pointer) 타입의 데이터를 출력할 때 사용되는 형식 지정자입니다. 포인터 변수가 담고 있는 메모리 주소 값을 화면에 표시해야 할 때 유용하게 활용됩니다.

아래 예제를 통해 %p의 동작 방식을 더 자세히 살펴보겠습니다.

예제 코드

#include<stdio.h>
main() {
   int x = 50;
   int *ptr = &x;
   printf("The address is: %p, the value is %d", ptr, *ptr);
}

실행 결과

The address is: 000000000022FE44, the value is 50

코드 설명

위 예제에서는 정수형 변수 x에 50을 저장하고, 포인터 변수 ptrx의 메모리 주소를 가리키도록 설정했습니다.

이후 printf 함수에서 두 가지 형식 지정자를 함께 사용했습니다.

  • %p: 포인터 변수 ptr이 저장하고 있는 메모리 주소(000000000022FE44)를 출력합니다.
  • %d: 역참조 연산자(*)를 사용하여 포인터가 가리키는 실제 값(50)을 출력합니다.

출력 결과에서 볼 수 있듯이, %p는 메모리 주소를 16진수 형태로 표시합니다. 참고로 주소 값은 실행 환경이나 시스템마다 다르게 나타날 수 있습니다.