인프런 커뮤니티 질문&답변
형변환 관련 질문 있습니다
해결된 질문
작성
·
203
0
void* 에서 형변환을 하는 것을 보고
포인터에서 정수나 실수 등으로 형변환
또는
정수나 실수 등에서 포인터로 형변환 하면 어떻게 될까 싶어서 해봤더니
invaild type conversion 이라고 하면서 오류가 뜹니다
왜 그런건가요?
아래는 형변환을 시도해 본 코드입니다
int value = 3;
int* ptr = &value;
static_cast<int>(ptr);
void* ptrr = &value;
static_cast<int>(ptrr);
static_cast<int*>(value);
static_cast<void*>(value);
퀴즈
여러 개의 동일 자료형 데이터를 효율적으로 관리하기 위한 방법은 무엇일까요?
개별 변수 사용
배열 활용
상수 선언
포인터만 사용
답변 1
1
static_cast 은 좀 더 엄격하고 논리적으로 변경이 가능한 경우에만 형변환 해줍니다.
포인터를 정수로 변환한다던가 하는 경우엔 invaild type conversion 를 뱉으면서 안해줍니다.
https://stackoverflow.com/questions/2473628/c-cant-static-cast-from-double-to-int





