2.3 기본 자료형 [DOC] [SMTS]
자료형(data type)이란 정수, 실수, 문자 등과 같이 프로그램에서 사용되는 자료(data)의 종류를 의미한다. 사용하고자 하는 데이터의 종류가 정해지면 그것을 저장할 변수는 그것에 맞추어서 만들어져야 한다. C 언어는 기본 자료형을 제공하고 사용자들이 필요에 따라 새로운 자료형을 정의할 수 있는 방법을 제공하고 있다.
표준 C언어에서 제공하는 기본적인 자료형을 다음 표에 정리하였다.
[표 2.1.1] C언어의 기본 자료형
분류 | 데이터형 | byte | 범위 | 비고 |
정수형 | (signed) char unsigned char | 1 | -128~ 127 0~255 | |
(signed) short unsigned short | 2 | -32,768 ~ 32,767 0 ~ 65,535 | ||
(signed) int unsigned int | 4/2 | -2,147,483,648 ~ +2,147,483,647 0~4,294,967,295 | ||
(signed) long unsigned long | 4 | -2,147,483,648 ~ +2,147,483,647 0~4,294,967,295 | ||
(signed) long long unsigned long long | 8 | -2^63 ~ 2^63-1 0 ~ 2^64-1 | C99 C99 | |
실수형 | float | 4 | ||
double | 8 | |||
long double | 12 | C99 | ||
논리형 | bool boolean | 1 1 | true, false true, false | C99(1) C++ |
stdbool.h 를 인클루드 한 후에 사용가능하다.
자료형은 크게 정수형과 실수형, 논리형으로 나뉜다. 정수형은 부호가 있는 signed 형과 부호가 없는 unsigned 형이 별개로 존재하지만 실수형은 그렇지 않다. 또한 각각의 자료형은 정해진 크기가 있으나 PC환경에 따라 그 크기가 변화하는 데이터 형이 있음에 주의해야 한다. 대표적인 것이 int형과 long double형이다.
논리형은 true, false 두 가지 값만을 가지는 자료형이다. C 언어에서는 C99이후에 stdbool.h 라는 표준 헤더 파일을 인클루드하면 bool형을 사용할 수 있다. (C++은 boolean 자료형이 기본형으로 제공된다.)
변수(variable)는 자료를 담는 그릇이다. 변수를 사용하려면 반드시 먼저 선언을 해야 하며 문법은 다음과 같다.
자료형 변수명; |
예를 들어서 int 형 변수 ia를 사용하려면 다음과 같이 선언을 해야 한다.
int ia; |
이렇게 선언을 한 이후에는 이 변수에 값을 대입한다든지 계산을 하는데 사용할 수 있다.
int ia; // 선언ia = 100; //사용(초기화) 정수값을 대입ia = 12 * 34; //사용 :곱셈 계산 |
변수의 '초기화'는 선언된 이후에 맨 처음으로 어떤 값을 대입하는 것을 의미한다. 위와 같이 변수를 선언한 후 초기화를 별도로 할 수도 있고 선언과 동시에 초기화를 수행할 수 도 있다.
long la = 0; // 선언과 동시에 초기화double da = 1.0; // 선언과 동시에 초기화 |
이렇게 한 이후에는 자유롭게 변수를 사용할 수 있다.
ex02-01.c |
#include <stdio.h>int main() {short sa = 11;int ib = sa + 12; // sa값과 12를 더한다.int ic = sa * ib; // sa값과 ib값을 곱한다.printf("%d, %d, %d", sa, ib, ic);} |
실행 결과 |
11, 23, 253 |
이 예는 변수 sa, ib, ic를 생성하여 그 값을 printf()함수를 이용하여 화면에 출력하는 것이다. 컴파일한 후 실행해서 결과를 직접 확인해 보자.
'프로그래밍언어.Lib > C,C++' 카테고리의 다른 글
C/C++의 식별자 (변수,함수,클래스 등의 이름) (0) | 2015.04.27 |
---|---|
무료로 사용할 수 있는 C언어 개발 프로그램 Pelles C (0) | 2015.04.25 |
C++의 복사 생성자 (copy constuctor) (0) | 2015.04.22 |
C++의 객체간 대입 (0) | 2015.04.22 |
[C/C++] 정수형 자료형 (0) | 2015.04.22 |