- 2진 표현 binary representation : 0과 1(2진 데이터)로 값을 표현하고 저장하는 방식
- C언어가 제공하는 데이터형의 크기는 운영체제에 따라 다름
- 16bit : 2byte / 32bit or 64bit : 4byte
- sizeof 연산자 : 데이터형이나 byte의 크기를 구하는 연산자
- 사용형식 sizeof(데이터형, 값)
- 정수형
- 정수형의 2진 표현
- 부호 있는 정수형은 최상위 비트, 부호 비트를 사용 > 부호 비트가 1이면 음수, 0이면 양수 ( 음수를 나타내기 위해 2의 보수를 사용 )
- short형와 unsigned short 변수는 2byte이기 때문에 4byte로 늘리기 위해 부호 비트를 늘려서 넣음
- char형은 문자형이지만 1byte 크기의 정수형으로 사용 가능 ( 범위는 -128 ~ 127)
- 오버플로우 overflow : 유효범위보다 큰 값을 저장 했을 때, 유효 범위 안의 값으로 저장되는 것
- 언더플로우 underflow : 유효범위보다 작은 값을 저장 했을 때, 유효 범위 안의 값으로 저장되는 것
- 문자형
- 문자의 2진 표현
- ASCII코드 : 33개의 제어문자(0~31, 127), 95개의 출력 가능한 문자(32~126)로 구성
- 출력 가능한 문자 : 52개 영문 대소문자, 10개 숫자, 32개 특수문자 , 1개 공백문자
- 문자의 2진 표현
- 특수 문자 표 말고 다른 방법으로는 ' \' 다음에 8진수로 적어주거 나 ' \x' 다음에 16진수로 적어준다
- 실수형
- 실수형의 2진 표현
- 부동소수점 방식 : 실수를 지수 부분과 가수 부분으로 나누어 2진 데이터 저장
- 실수의 정밀도는 가수 부분에 의해서 결정, 실수의 범위는 지수 부분에 의해서 결정
- 실수형의 2진 표현
- 부동 소수점 방식으로 실수 값 표현하면 값에 오차가 발생할 수 있음 > 유효 범위를 잘 체크해야함
- 실수형의 오버플로우 : 최대값 보다 큰 값을 저장하려고 하면 무한대를 의미하는 INF로 저장됨
- 실수형의 언더플로우 : 최소값보다 작은 값을 저장하려고 하면 가수를 줄이고 지수를 늘리거나, 0으로 만듦
- 변수 : 값을 변경할 수 있는 데이터
- 변수의 선언
- 프로그래머가 만들어서 사용하는 이름 = 변수 = 식별자 identifier
- 영문자, 숫자, 밑줄 기호만 사용
- 첫 글자는 영문자, 밑줄 기호로 시작, 숫자로 시작 X
- 밑줄 기호 제외 다른 기호 사용 불가능
- 대소문자 구분
- C언어의 키워드는 식별자로 사용 불가능
- 키워드 keyword : C언어에서 미리 정의된 단어 = 예약어
- 프로그래머가 만들어서 사용하는 이름 = 변수 = 식별자 identifier
데이터형 변수명;
int num;
- 변수의 초기화 : 선언 후, 초기화 하지 않으면 쓰레기 값이 들어감
int num = 20220216;
- 대입 : 변수에 값을 저장하는 것
- 변수의 데이터형과 같은 형의 값을 대입해야함
num = 220216;
- 상수 : 값을 변경할 수 없는 데이터, 한 번만 사용되고 없어져 버리는 임시 값
- 리터럴 상수 : 값 자체를 직접 사용 = 일반적인 상수
- 문자열 상수에는 문자열의 끝을 나타내는 널문자 \n가 함께 저장됨
- 매크로 상수 : #define문으로 정의되는 상수
- 여러번 사용 되는 상수
- 다른 이름과 구별되게 대문자로 만듦
- #define문은 전처리기가 수행하는 문자
- #define문의 끝에는 세미콜론 필요 없음
- 매크로 상수의 값은 연산식에서 변경 할 수 없다 > 정의된 곳에서 수정하는 것은 가능
- 매크로 상수는 보통 함수 밖에서 정의
- 리터럴 상수 : 값 자체를 직접 사용 = 일반적인 상수
#define 매크로명 값
#define ZERO 0;
- #define으로 정의된 매크로 상수를 특정 값으로 대치 replace 시킴
- 문자열의 일부는 대치되지 않음
- const 변수 : 값을 변경할 수 없는 변수
- 초기화 된 다음에는 값을 변경할 수 없으므로, 선언 시 초기화 해야함
const 데이터형 변수명 = 초기값;
const int ZERO = 0;
- 기호 상수를 사용해야하는 이유
- 프로그램 수정이 쉬움, 프로그램 이해가 쉬움
'C(Core C Programming)' 카테고리의 다른 글
4. 연산자 (0) | 2022.02.17 |
---|---|
Core C Programming 3장 Programming assignment (0) | 2022.02.16 |
Core C Programming 2장 Programming assignment (0) | 2022.02.15 |
2. 프로그램의 기본 (0) | 2022.02.15 |
1. C언어와 프로그래밍 개요 (0) | 2022.02.15 |