키워드 (Keywords)
키워드는 C언어에서 고유한 의미를 갖는 단어로 식별자로 사용할 수 없으며 각 키워드는 프로그램에서 특별한 기능을 수행합니다.
auto | do | goto | signed |
unsigned | break | double | if |
sizeof | void | case | else |
int | static | volatile | char |
enum | long | struct | while |
const | extern | register | switch |
continue | float | return | typedef |
default | for | short | union |
다음은 32개의 C언어 키워드입니다.
* 예약어(Reserved Word)라고도 합니다.
식별자 (Identifier)
식별자는 변수, 상수, 함수의 이름 등 사용자가 직접 정의한 데이터로 정의할 때 다음과 같은 규칙이 있습니다.
- 영문 대소문자, 숫자, 언더바(_)로만 구성해야 하지만 한글도 가능합니다. |
- 첫번째 문자는 숫자가 될 수 없습니다. |
- 대문자와 소문자를 구별하며 식별자는 사용할 수 없습니다. |
식별자의 이름을 정의할 때에는 약간의 작명 센스가 필요한데 식별자의 특성이 잘 반영되도록 잘 정의하는 것이 중요합니다.
자료형 (Data Type)
자료형은 프로그램에서 선언된 변수나 함수가 어떤 방식으로 사용되고 저장되는지를 알려주는 일종의 표시입니다.
대상 | 자료형 | 크기 | 표현 범위 | 변환 기호 |
정수 | short | 2 byte | -32768 ~ 32767 | %hd |
int | 4 byte | -2147483648 ~ 2147483647 | %d | |
long | 4 byte | -2147483648 ~ 2147483647 | %ld | |
long long | 8 byte | -(2^63) ~ 2^63-1 | %lld | |
실수 | float | 4 byte | 1.175494351e-38 ~ 3.402823466e+38 | %f |
double | 8 byte | 2.2250738585072014e-308 ~ 1.7976931348623158e+308 |
%lf | |
문자 | char | 1 byte | -128 ~ 127 | %c |
없음 | void |
int의 크기는 기기나 컴파일러에 따라서 다릅니다.
void는 주로 반환 값이 없는 함수에서 쓰입니다.
char는 평소에는 숫자로 저장하다가 변환 기호를 이용해 변환할 때에는 ASCII 코드나 EBCDIC 코드 값에 따라 문자로 변환합니다.
DEC | 문자 | DEC | 문자 | DEC | 문자 | DEC | 문자 |
63 | ? | 73 | I | 83 | S | 93 | ] |
64 | @ | 74 | J | 84 | T | 94 | ^ |
65 | A | 75 | K | 85 | U | 95 | _ |
66 | B | 76 | L | 86 | V | 96 | a |
67 | C | 77 | M | 87 | W | 97 | b |
68 | D | 78 | N | 88 | X | 98 | c |
69 | E | 79 | O | 89 | Y | 99 | d |
70 | F | 80 | P | 90 | Z | 100 | e |
71 | G | 81 | Q | 91 | [ | 101 | f |
72 | H | 82 | R | 92 | \ | 102 | g |
다음은 ASCII 코드의 일부입니다.
변수 (Variable)
변수는 프로그램 실행 시 임시적으로 데이터를 저장하는 공간입니다.
변수를 선언할 때에는 다음과 같이 선언합니다.
자료형 변수명; // 변수를 선언합니다.
자료형 변수명 = 초기화값; // 변수를 선언함과 동시에 초기화도 가능합니다.
* 변수를 선언하고 값을 처음으로 지정하는 것을 초기화라고 합니다.
(초기화하지 않은 변수는 의미 없는 값을 가지고 있기 때문에 변수를 선언함과 동시에 초기화하는 것이 좋습니다.)
int a = 123; // 정수형 변수 a를 선언하고 123으로 초기화합니다.
float b = 1.23; // 실수형 변수 b를 선언하고 1.23으로 초기화합니다.
char c = 'c'; // 문자형 변수 c를 선언하고 'c'로 초기화합니다.
상수 (Constant)
상수는 초기값을 지정하고 그 값이 프로그램이 실행되는 동안 변하지 않는 데이터입니다.
상수를 선언할 때에는 다음과 같이 작성합니다.
const 자료형 상수명 = 초기화값; // 상수는 반드시 초기화해야 합니다.
매크로를 이용하여 상수를 선언할 때에는 다음과 같이 선언합니다.
#define 상수명 상수값
// 세미콜론을 넣지 않으며 자료형을 명시하지 않아도 됩니다.
형변환 (Casting)
형변환은 서로 자료형이 다른 변수와 연산을 수행할 때 자료형을 묵시적 또는 명시적으로 변환하는 것입니다.
묵시적 형변환(Implicit Type Conversion)은 서로의 자료형이 크기가 같거나 클 때 발생하며, 크기가 더 큰 자료형으로 변환됩니다.
char < short < int < long < float < double |
다음은 각 자료형의 크기를 비교한 것입니다.
명시적 형변환(Explicit Type Conversion)은 강제로 자료형를 지정하는 것으로, 크기가 큰 자료형에서 크기가 작은 자료형으로 형변환 시 데이터의 손실이 있을 수 있습니다.
명시적 형변환은 다음과 같이 사용합니다.
(자료형)변수명
(자료형)값
float x, y = 12.8;
x = (int)y / 4; // y가 int로 변환되어 12가 되고 12/4의 결과인 3이 x에 저장됩니다.