본문 바로가기

C&C++_Basic/C_Pointer

C언어 char* int* 형변환

 

  • 다음과 같이 int 형 변수 value에 0x2F24263F를 정의한 후, char * 변수 pc를 선언하고, pc 변수를 이용하여 value의 저장 값을 각각 byte 단위로 인지하여 각각의 문자를 출력하는 프로그램을 작성하시오.
  • value n = 0x2F24263F;
  • 각각 2F는 문자 ‘/’, 24는 ‘$’, 26은 ‘&’, 3F는 ‘?’이며, 순서는 이의 역순으로 출력
  • 즉 ? & $ / 순으로 출력하며, 각각의 주소 값도 출력한다
#include<stdio.h>

int main()
{
	int value = 0x2F24263F;
	int *pi = &value;//주소값을 정수로 받고 pi = &value 
	char *pc = (char*)&value;//형변환을 통해 문자로 변환 pc =&value 기
	// char는 1byte 짜리 이므로, char로 변환함으로써 1byte씩 이동가 
	
	printf("변수	저장값	주소값\n");
	printf("\n");
	printf("value	%06x	%u\n",value,&value);
	
	int i;
	for(i=0;i<=3;i++)//4개의 문자를 각각 byte로 출력해야 한다. 4번 반복문 만들 
	{
		char ch = *(pc+i);//pc = &value   --> *pc = value
		// 대신에 해당하는 value 값을 , 그에 맞는 문자로 출력
		printf("*(pc+%d)	%0#x	%c	%u\n",i,ch,ch,pc+i); 
		//pc+i 값의 주소는 각각의 주소값을 출력함을 의미한다. 
	}
	
	return 0;
 }

 

 

비전공자를 위한 이해할 수 있는 IT 지식

COUPANG

www.coupang.com

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음