Ex-void형 포인터 변수를 이용하여 *연산자로 값을 간접 접근할 경우 강제 형변환 수행

CODEDRAGON Development/C, C++

반응형

   

void형 포인터 변수를 이용하여 *연산자로 값을 간접 접근할 경우 강제 형변환 수행

http://codedragon.tistory.com/2165 의 문제 해결

   

   

학습내용

(char*) 코드 해석

(char*)

char형 주소로 강제 형변환

*(char*)

강제 형변환된 주소에 저장된 값을 참조

   

*(double*) 코드 해석

(double*)

double형 주소로 강제 형변환

*(double*)

강제 형변환된 주소에 저장된 값을 참조

   

   

   

소스코드

   

#include <stdio.h>

void main(){
        char c=3;
        double d=3.14;

        void* vp=NULL;

        vp=&c;
        printf("vp
저장한 : %x\n", vp);
        printf("*vp
: %d\n", *(char*)vp); // 강제 형변환(char *)
                                                // *(char*)
코드 해석
                                                // 1) (char*): char
주소로 강제 형변환
                                                // 2) *(char*):
강제 형변환된 주소에 저장된 값을 참조
        vp=&d;
        printf("vp
저장한 : %x\n", vp);
        printf("*vp
: %lf\n", *(double*)vp);      // 강제 형변환(double *)
                                                // *(double*)
코드 해석
                                                // 1) (double*): double
주소로 강제 형변환
                                                // 2) *(double*):
강제 형변환된 주소에 저장된 값을 참조
}


   

   

출력결과