C언어 강좌5.C언어의 자료형

Posted by 슈퍼너드 리보
2020. 10. 8. 19:09 프로그래밍/C
반응형

수많은 데이터를 다루는 학문이 프로그래밍입니다. 프로그래밍에 있어 데이터타입 즉 자료형을 아는건 기본 중의 기본이죠. 


자료형의 정의

자료형은 변수에 저장 되는 자료의 종류를 말합니다. 


자료형의 종류와 크기 

자료형에는 다음과 같은것들이 있습니다.




문자형

문자형은 문자를 표현해주는 타입입니다. 문자형의 리터럴은 'a', '가' 처럼 작은따옴표를 붙여서 나타냅니다. 

정수형

정수형은 정수를 표현해주는 타입입니다. 단 숫자 정수와는 달리 소수점 이하의 숫자는 표현 할 수 없습니다. 소수점을 사용하지 않는 정수는 실생활에서 가장 많이 쓰인다는 사실 알고 계실겁니다. 프로그래밍에서도 인티져타입은 제일 많이 쓰이죠. 인티져타입의 리터럴은 323, 1344 같은 숫자로 씁니다. 접미사로 0과 0X를 붙이기도 하는데 0은 8진수 0x는 16진수를 표기합니다.(※이게 뭔소린지 모르겠으면 컴퓨터 개론 진법 강좌를 보고 오세요!)

실수형

실수형은 실수를 표현해주는 타입입니다. 실수형의 리터럴은 0.1, 1.5 같은 소수점이 붙은 숫자를 써야됩니다. 접미사로 F와 L을 붙이기도 하는데 


'뭐 이렇게 많이 있어 할 수 있어!'라고 생각 할 수 있습니다. 그렇지만 컴퓨터는 알다시피 멍청한 얘라 이렇게 구분해서 해야 합니다. 이렇게 딱딱 구분해줘야 탈 없이 프로그램이 작동 됩니다. 그리고 범위 쪽 보면은 2가지로 적어났는데 여러분의 컴퓨터가 64비트냐 32비트 환경이냐에 따라 범위를 구분한겁니다. 앞이 64비트, 뒤가 32비트입니다. 자료형 앞에 "기본"이라고 붙어있는데 자료형이 이거 말고도 또 있어? 라는 의문이 들건데요. 자료형이 이거말고도 또 있습니다. 물론 자료형 하면 대체적으로 떠오르는건 오늘 배운게 다입니다만 뒤에 배울 배열 열거형 구조체 등도 일종의 자료형이죠. 이러한것들은 차차 배울겁니다.


이거 못외우겠다 limits.h 헤더파일을 이용하면 언제든지 범위를 알 수 있으니 힘들게 외울거까진 없습니다. 이것을 사용하는 방법은 프리프로세서 시간에 배우겠습니다.


자료형의 오버플로우 

자료형의 범위를 넘는다면 무슨일이 일어날까요? 데이터타입의 오버플로우가 일어납니다. 오버플로우라는건 넘친다는 의미죠. 그렇다면 넘친 데이터는 어떻게 되는걸까요? 예를 하나 들어 보겠습니다. int 3의 최대 범위 2147483647를 1 초과합니다. 이것을 코드로 작성하면 다음과 같습니다.(아직 배우지 않은 오퍼레이터 개념을 썼습니다.)

#include <stdio.h>
 
int main(void)
{
	
	int a, b;
	a = 2147483647;
	b = 1;
	printf( "오버플로우가 일어났어요 : %d\n" ,   a+b);
	
	return 0;
}


이것을 실행하면 -214748368이 됩니다 !! 아니 왜 -부호가 붙여져 생각 할 수 있는데 우리가 아까 최소범위 배웠잖아요? 바로 그거입니다. 오버 플로우는 초기값인 최소범위로 돌아갑니다. 마치 만보기처럼 만보가 채워지면 1부터 시작하는것처럼 말이죠!!




반응형