-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
[2:45] &c 출력값이 이상하게 나오는 이유 질문드립니다.
22.05.18 22:46 작성 조회수 235
0
int main()
{
char c = 'a';
void *ptr = nullptr;
ptr = &c;
cout << &c << " " << ptr << endl;
return 0;
}
앞에서 설명하셨다고 하면서 넘어가셨지만 한 번 더 &c의 출력값이 이상하게 나오는 이유를 알려주실수 있을까요?
답변을 작성해보세요.
0
강민철
2022.05.19
&c를 cout으로 올바르게 출력하기 위해서는
그냥 &c만으로 적는 것이 아니라
다음과 같이 형 변환을 거치셔야 합니다.
#include<iostream>
using namespace std;
int main()
{
char c = 'a';
void *ptr = nullptr;
ptr = &c;
cout << (void*)&c << endl;
cout << ptr << endl;
return 0;
}
참고 링크도 첨부해드립니다.
https://stackoverflow.com/questions/9377407/displaying-the-address-of-a-string
강민철
2022.05.20
&c를 출력할 때 기본적으로 cout은 문자열로 인식하여 출력하기 때문입니다.
&c를 문자열로 그대로 출력하면 올바른 메모리 주소로 출력되지 않습니다.
아래 코드를 통해 확인해보세요.
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char c = 'a';
void *ptr = nullptr;
ptr = &c;
printf("%s\n", &c);
printf("%p\n", &c);
return 0;
}
답변 1