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 |