프로그램 구조
2 - 3 데이터 타입 (data types)
목차
- 변수와 데이터 타입
- C의 기본 데이터 타입
- 정수형
- 문자형
- 부동소수형
- sizeof연산 (이를 이용해서 각각의 데이터타입에 몇 byte가 부여되는지 알 수 있다)
데이터 타입(data type)이란?
- 데이터 처리를 위해서는 데이터를 저장해야 함
- 데이터를 종류에 따라 분류하여 적절한 크기의 공간을 저장하기 위해서 데이터 타입이 필요
- 변수에 저장되는 값의 종류를 데이터 타입(data types)또는 간단한 자료형
- 기본 자료형(basic type) : int, char, float, ...
- 유도 자료형(derived type) : 배열, 구조체, 공용체 (이는 기본 데이터타입을 기반으로 더 많은 사용자가 그 데이터타입을 만들 수 있도록 해놓은 것)
변수 선언
- 변수 : 프로그램에서 자료 값을 임시로 기억할 수 있는 저장 공간
- 컴퓨터의 메모리인 RAM(Random Access Memory)에 저장
- 변수명은 자료값을 저장하는 저장 장소의 이름
- 같은 데이터 타입 변수 여러 개 선언 시 콤마(,) 사용
- ex) int a, b, c;
C 기본 데이터 타입(data type)
-
데이터타입의 세분화가 잘되어있다. 이렇게 세분화가 잘되면 메모리의 효율성을 조금 더 높일 수 있다. 운영체제를 만드는 언어이기에 좀더 세분화하여 데이터타입을 만들어놨다고 볼 수 있다.
-
문자형은 우리에겐 문자지만 컴퓨터에겐 문자도 숫자화하여 처리하기 때문에 문자도 정수형에 속한다. 문자를 선언할때 char
-
unsigned는.. 예를 들어 4바이트인 경우 모두 양수로만 쓰겠다 할때 unsigned로 선언한다.
-
float : 소숫점 밑 6자리까지 유효 (4byte)
-
double : 소숫점 밑 15자리까지 유효 (8byte)
-
long double : 만들 당시에는 double보다 큰 자료형을 만드려고 했던거같지만..일반적으로 우리가 사용하는 컴파일러는 double형과 long double 모두 8byte
정수형
- 정수형은 큰 의미에서는 문자형을 포함
- 좁은 의미에서는 문자형을 제외한 순수하게 정수를 저장하는 자료형
- signed int의 범위 (이때 signed는 생략 가능)
- 정수 자료형 signed int의 크기가 32비트(4바이트)이면 음수부터 양수까지 표현이 가능하므로 -2^31에서부터 2^31-1 까지 표현이 가능
- unsigned int의 범위
- 0과 양수만 표현
문자형은 왜 정수형일까?
- 문자형을 선언하는 자료형은 char가 있다. 보통 이를 많이 사용하는데 이는 아스키코드로 저장되는 문자는 정수값으로 연산 가능하기 때문에 문자형이 정수형이라는 것.
// 문자형 연산 예
char c1 = 'a'; // 선언할때 c1에 'a'라는 문자상수 싱글쿼트를 넣어준다.
c1 = c1 + 1; // c1은 문자형이지만 여기에 정수 1을 더함.
// 이는 컴퓨터에서 c1도 정수처럼 처리가 가능하기 때문에 더하기 연산이 가능한 것.
printf("%c", c1); // 'b' %c는 문자 하나를 찍어주기 위함
printf("%d", c1); // 98 %d는 십진수로 찍어주기 위함
부동소수형
- float, double, long double
- float의 저장공간 크기 : 32비트(4바이트)
- 표현 범위는 대략 10^(-38)에서 10^38이고, 소수점 이하 6자리까지 표현이 가능
- double의 저장공간 크기 : 64비트(8바이트)
- double은 float보다 표현 범위가 크고, 정밀도도 정확하게 표현
- 표현 범위는 대략 10^(-308)에서 10^308이고, 소수점 이하 15자리까지 표현
- long double은 double보다 큰 저장공간을 할당하려는 의도에서 만들어졌으나... 컴파일러마다 다르다. 보통은 double과 long double이 똑같이 8바이트가 부여되어있는 경우가 많다.
- float의 저장공간 크기 : 32비트(4바이트)
sizeof 연산자
- sizeof 연산자
- 저장공간의 크기를 알 수 있는 연산자로 sizeof를 이용
- 연산자 sizeof 다음의 변수 이름으로 둘러싸는 괄호는 생략 가능
- 결과 값은 같은 크기의 바이트 값
- sizeof 이용법
sizeof (변수)
sizeof 변수
sizeof (자료형 키워드)
printf("%d", sizeof(char)); // 1
printf("%d", sizeof(int)); // 4
printf("%d", sizeof(float)); // 4
printf("%d", sizeof(double)); // 8
반응형
'컴퓨터공학입문' 카테고리의 다른 글
3 - 1 사용자 정의 함수 (0) | 2019.08.28 |
---|---|
2 - 4 프로그램 구조 (0) | 2019.08.26 |
2 - 2 변수와 상수 (0) | 2019.08.25 |
2 - 1 C언어 구조 (0) | 2019.08.25 |
1 - 4 프로그래밍 개발 환경 (0) | 2019.08.25 |