[C프로그래밍 Chapter3]
[C언어 기본 자료형 이해]
자료형 : 데이터를 표현하는 기준, 변수도 상수도 자료형에 근거한다.
즉, 데이터를 표현하는 방법
자료형 별 크기를 정확히 제한하고 있지 않다.
많은 자료형을 제공하는 이유
- 데이터의 표현 방식이 다르다
- 메모리 공간의 적절한 사용을 위해 다양한 크기의 자료형이 필요하다.
sizeof() 함수 - 자료형의 크기를 알수 있다.
정수형 기본 자료형 int
실수형 기본 자료형 double
unsigned char선언 하면 0이상의 값만 표기한다.
[문자의 표현 방식과 문자 자료형]
C언어는 문자 표현에 대해 아스키 코드를 사용한다.
프로그램에서 문자표현 ' ' 가 사용된다. 관련 서식문자 %c
C언어에서 정수는 출력의 방법에 따라 문자, 숫자의 형태로 출력이 가능하다. 숫자에 매칭되는 아스키값 사용
[상수 이해]
상수 : int, double과 같은 자료형을 근거로 표현됨.
리터럴(Literal) 상수 - 40, 2 등등
상수를 변수에 저장하여 메모리를 부여한 뒤, 연산을 실행한다.
자료형이 상수값을 조절한다.
따라서 자료가 잘려나가는 상황이 발생할 수도 있다. 자료형의 크기가 차이가 발생하기 때문에,
C언어에서는 접미사를 사용하여 이를 표기한다.
심볼릭(Symbolic) 상수 - const 상수
const int Max = 100;
변수 Max를 상수화, Max의 값을 변경 할수 없게 된다. 변수의 상수화.
상수이름을 대문자로 표기하는것이 관례
[자료형 변환]
자료형의 변환 : 데이터 표현 방식을 바꾸는 것
- 자동 형 변환(묵지적 형 변환)
- 강제 형 변환(명시적 형 변환)
자동 형 변환
double num1 = 123; - 상관없다.
int num2 = 3.1415;
num2 경우 실수형 데이터를 정수형 데이터로 변화는 과정에서 소수 부분의 손실이 발생한다.
또한 int와 char경우 처럼 상위 비트 손실로 인해 부호가 변하는 과정도 발생.
정수의 승격에 의한 자동 형 변환도 존재한다.
무튼, 피연산자의 자료형이 일치하지 않아서 발생하는 자동 형 변환은 데이터의 손실을 최소화하는 방향으로 고려.
강제 형 변환
연산 결과가 피연산자의 자료형 결과와 일치하지 않을 경우 발생.
따라서 명시적으로 피연산자 앞에 (자료형)을 사용하여 형을 변환한다.
int num1 = 1
int num2 = 3
int result = num1 / num2
결과는 0으로 나온다.
따라서 num1앞에 (double)num1 하는 순간 상위의 double연산이 이루어진다.