[C/C++]5가지 기본 데이터형 (char,int,float,double,void)

void main()
{
char cChar = 0, *pChar;
int iInt = 0, *pInt;
float fFloat = 0, *pFloat;
double dDouble = 0, *pDouble;
void* pVoid = NULL; //일반  데이터형으로는 사용이 불가능하고, 포인터로만 사용이 가능하다. 
SA sStruct; //구조체
CA cClass; //클래스
UA uUnion; //공용체

   //포인터는 데이터형이 맞아야만 저장이 가능하다.
pChar = &cChar;
pInt = &iInt;
pFloat = &fFloat;
pDouble = &dDouble;
//pChar = &iInt; //error
//pChar = pInt; //error

//변수를 초기화할때, 데이터형은 어떤것이든 상관없다.
cChar = 111;
iInt = 'a';
fFloat = 'f';
dDouble = 'd';

//출력은 변수타입과 상관없이 데이터를 다른형태로 출력가능하다.
printf("char:%c/%d\n", cChar, sizeof(cChar)); // o/1
printf("int:%d/%d\n", iInt, sizeof(iInt)); // 97/4
printf("float:%f/%d\n", fFloat, sizeof(fFloat)); //102.000000/4
printf("double:%f/%d\n", dDouble, sizeof(dDouble)); //100.000000/8

//변수를 다른데이터형에 변환할때 잘리는 경우 워닝을 발생시킨다 
cChar = iInt;
iInt = cChar;
cChar = fFloat; //warning
iInt = fFloat;//warning

  //void포인터 
  //보통다른타입의 변수에 포인터는 저장할수없지만 보이드는 모든 데이터형의 포인터를 저장한다.
pVoid = &cChar;
pVoid = &iInt;
pVoid = &fFloat;
pVoid = &dDouble;
pVoid = &cClass;
pVoid = &uUnion;
pVoid = &sStruct;
}

정리
1.데이터형은 초기화될때 어떤데이터가 들어가든 상관없다.
2.void는 포인터로만 사용이 가능하고 어떤 변수의 주소든 저장이 가능하다.
3.일반적 데이터형의 주소는 각 데이터형의 포인터형이나 void포인터에 저장가능하다.
4.데이터를 출력하는 형식도 데이터 형과는 전혀 상관없이 그저 출력하는 형식을 지정한다,

결론
데이터형에 상관없이 초기화하더라도 논리적오류를 범하지않기위해 형에 맞는 데이터를 넣어야한다.
void 포인터를 이용하면 배열로 서로 다른 자료형을 포인터를 묶어서 사용도 가능할것이다.

댓글

이 블로그의 인기 게시물

[gpt/gpt와 대화/번역]이미지생성형ai와 인공지능에 대하여

[AI요약/퍼플렉시티]게임산업의 침체와 한국게임업계의 희망

[문화콘텐츠제작] 모바일 앱콘텐츠 UI/UX 디자인-이광훈