5-1 C언어가 제공하는 기본 자료형


- C언어는 변수의 선언을 위해 자료형을 제공한다.

 * 기본 자료형과 데이터 표현 범위

자료형 할당되는 메모리 크기 표현 가능한 데이터의 범위
정수형 char 1바이트 -128 ~ 127
short 2바이트 -32768 ~ 32767
int 4바이트 -2147483648 ~ 2147483647
long 4바이트 -2147483648 ~ 2147483647
실수형 float 4바이트 3.4*10^-37 ~ 3.4*10^38
double 8바이트 1.7*10^-307 ~ 1.7*10^308
long double 8바이트 혹은 그 이상 유동적임


- sizeof는 함수가 아니라 연산자이다. 


- 컴퓨터는 내부적으로 int형 데이터를 가장 빠르게 연산(처리)한다. 따라서 메모리가 낭비되더라도 연산을 하는 정수에는 int형을 쓰는게 좋다.
- char형은 문자를 표현하는데 좋다. 문자로 연산을 하는 일은 드물기 때문이다.

- unsigned가 붙으면 부호 비트를 사용하지 않는다. 따라서 각 데이터 표현 범위가 -x ~ x-1 에서 0 ~ 2x-1이 되는 것이다. 


5-2 상수

- 리터럴(literal)상수 : 이름이 없는 상수. 코드상에서 이름없이 문자,숫자 그대로 쓰인다.

- 심볼릭 상수 : 이름을 지니는 상수. const 키워드를 사용하거나, 매크로를 사용할 수 있다.
ex) const int MAX = 100;
 const 키워드를 사용할 때에는 선언과 동시에 초기화를 해야만 한다. (상수이기 때문에 나중에 변경할 수 없다.)

- 상수의 이름은 일반적으로 대문자로 표시한다.


5-3 자료형 변환


1) 자동 형 변환

-대입 연산시 발생.
 실수형 데이터를 정수형 데이터 타입에 대입하면 소수부의 손실이 발생한다.
 값의 표현 범위가 적은 데이터 타입에 대입하면 비트의 앞부분이 그 차이만큼 버려진다. 즉, 값이 달라진다.

-정수의 승격 ( int형 연산이 빠른 이유 )
 char형과 short형 데이터들의 연산은 각 데이터를 int형으로 변환시킨후에 연산을 진행한 후 다시 해당 데이터 타입으로 변환시킨다. int형 연산은 이 형 변환을 거치지 않기 때문에 연산이 빠른 것이다.

-산술 연산 과정에서 발생
 데이터 타입이 다른 두 수를 연산 할 때, 데이터의 손실이 최소화되는 방향으로 형 변환이 일어난다.

산술 연산 과정에서의 형 변환 방향은
char -> int -> long -> float -> double -> long double 이다.


2) 강제 형 변환 ( 명시적 형 변환 )

-변수 앞에 괄호를 붙여서 강제적으로 데이터 타입을 변환시킬 수 있다.
ex) b = (float)a/2 ;
 

'학부 전공 > C' 카테고리의 다른 글

7. 반복문  (0) 2010.07.08
6. printf함수와 scanf함수  (0) 2010.07.08
4. 데이터의 표현방식  (0) 2010.07.07
3. 변수와 연산자  (0) 2010.07.06
2. 프로그램의 기본 구성  (0) 2010.07.06

+ Recent posts