서식지정자 %p 와 주소
, 류 앵준님이 작성#include <stdio.h>
int main()
{
int* numptr;
int num1 = 10;
numptr = &num1;
printf("%d\n", *numptr);
printf("%d\n", numptr);
printf("%d\n", &num1);
printf("%p\n", &num1);
return 0;
}
printf("%d\n", *numptr); => *numptr은 num1의 주소에 있는 값에 접근하는 것
printf("%d\n", numptr); => numptr 은 num1의 주소
printf("%p\n", &num1); => num1의 메모리 주소
printf("%d\n", &num1); => 이것은 num1의 메모리 주소가 10진수 형태로 출력되는 건가요?
Re: 서식지정자 %p 와 주소
, 도장_ 관리자님이 작성서식 지정자와 출력하려는 자료형의 타입은 맞춰야 합니다.
문의한 대로 해도 동작은 하지만, 타입이 일치하지 않기 때문에 경고가 발생합니다.
주소는 십진수로 출력하지 않고 포인터 주소형으로 출력해야 합니다. 서식 지정자 %p를 사용하세요. 표기는 16진수로 할 뿐인 겁니다.
주소를 %d로 출력하지 마세요. 가능은 합니다.