Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ 토큰(Token) 완벽 정리: 프로그램을 구성하는 가장 작은 단위

토큰(token)은 프로그램을 구성하는 가장 작은 개별 단위입니다. 문장이 단어들의 조합으로 이루어지듯, C++ 프로그램 역시 여러 개의 토큰이 모여 만들어집니다.

C++는 C 언어의 상위 집합(superset)이기 때문에 C에서 사용하던 대부분의 구문은 그 의미와 용법이 그대로 유지된 채 C++에서도 유효합니다. 따라서 토큰, 표현식(expression), 데이터 타입 등도 C와 매우 유사합니다.

C++의 주요 토큰 종류는 다음과 같습니다.

  • 키워드(Keywords)
  • 식별자(Identifiers)
  • 상수(Constants)
  • 변수(Variables)
  • 연산자(Operators)

1. 키워드(예약어)

키워드는 컴파일러에 의해 미리 의미가 정해져 있는 예약어(reserved word)로, 프로그래머가 임의로 그 의미를 바꿀 수 없습니다. 키워드의 동작 방식은 이미 컴파일러에 내장되어 있습니다.

C++는 C보다 더 많은 수의 키워드를 가지고 있으며, 추가된 키워드들은 객체 지향 프로그래밍 등 C++ 고유의 기능을 담당합니다.

C 언어에서 물려받은 32개의 키워드는 다음과 같습니다.

auto const double float int short struct unsigned
break continue else for long signed switch void
case default enum goto register sizeof typedef volatile
char do extern if return static union while

다음은 C에는 없던, C++에 새롭게 추가된 30개의 예약어입니다.

asm dynamic_cast namespace reinterpret_cast try
bool explicit new static_cast typeid
catch false operator template typename
class friend private this using
const_cast inline public throw virtual
delete mutable protected true wchar_t

2. 식별자(Identifiers)

식별자는 변수, 구조체, 함수 등 프로그램의 각 요소에 붙이는 이름입니다. 식별자는 프로그램 실행 과정에서 해당 요소를 참조하는 데 사용되므로 반드시 고유한(unique) 이름이어야 합니다.

식별자 이름 규칙

  • 영문자, 숫자, 밑줄(_)만 사용할 수 있습니다.
  • 첫 글자는 영문자 또는 밑줄(_)로 시작해야 하며, 숫자로 시작할 수 없습니다.
  • 대소문자를 구분합니다. (예: sum과 Sum은 서로 다른 식별자)
  • 예약어(키워드)는 식별자 이름으로 사용할 수 없습니다.

3. 상수(Constants)

상수는 변수와 비슷하지만, 한 번 정의되면 프로그램 실행 도중 절대 값이 변하지 않는다는 점이 다릅니다.

C++에서 상수를 정의하는 방법은 두 가지입니다.

  • const 키워드 사용
  • #define 전처리기(preprocessor) 사용

상수 선언 형식:

const [데이터 타입] [상수 이름] = [값];

4. 변수(Variables)

변수는 컴퓨터 메모리에 데이터를 저장할 수 있는 공간에 붙인 의미 있는 이름입니다. 변수를 사용하면 복잡한 메모리 주소를 직접 다루지 않고도 이름만으로 데이터를 손쉽게 참조할 수 있습니다.

변수 선언 형식:

[데이터 타입] [변수 이름];

5. 예제 코드

두 개의 정수를 입력받아 합을 출력하는 간단한 예제입니다.

#include <iostream>
using namespace std;

int main() {
    int a, b; // a와 b는 정수형 변수
    cout << "첫 번째 숫자 입력 : ";
    cin >> a;
    cout << "두 번째 숫자 입력 : ";
    cin >> b;
    int sum;
    sum = a + b;
    cout << "합계 : " << sum << "\n";
    return 0;
}

6. 연산자(Operators)

연산자는 수학적 또는 논리적 연산을 수행하기 위해 사용하는 기호입니다. C++의 연산자는 크게 다음과 같이 분류할 수 있습니다.

  • 산술 연산자
  • 증감 연산자
  • 관계 연산자
  • 논리 연산자
  • 비트 연산자
  • 대입 연산자
  • 기타 연산자

산술 연산자

연산자설명
+덧셈
-뺄셈
*곱셈
/나눗셈
%나머지(Modulus)

증감 연산자

연산자설명
++증가 연산자 (값을 1 증가)
--감소 연산자 (값을 1 감소)

관계 연산자

연산자설명
==같은지 비교
!=같지 않은지 비교
>크다 (초과)
<작다 (미만)
>=크거나 같다 (이상)
<=작거나 같다 (이하)

논리 연산자

연산자설명
&&AND(논리곱) 연산자. 두 표현식이 모두 참(True)일 때만 결과가 참이며, 하나라도 거짓(False)이면 결과는 거짓입니다.
||OR(논리합) 연산자. 두 표현식 중 하나라도 참이면 결과는 참입니다.
!NOT(논리부정) 연산자. 표현식의 참/거짓을 반전시킵니다.

비트 연산자

연산자설명
<<비트 왼쪽 시프트 연산자
>>비트 오른쪽 시프트 연산자
~비트 NOT(1의 보수) 연산자
&비트 AND 연산자
^비트 XOR 연산자
|비트 OR 연산자

대입 연산자

연산자설명
=값을 대입
+=더한 후 대입
-=뺀 후 대입
*=곱한 후 대입
/=나눈 후 대입
%=나머지를 구한 후 대입
<<=왼쪽 시프트 후 대입
>>=오른쪽 시프트 후 대입
&=비트 AND 결과를 대입
^=비트 XOR 결과를 대입
|=비트 OR 결과를 대입

기타 연산자

연산자설명
,쉼표 연산자
sizeof()메모리 공간의 크기를 반환
&메모리 위치의 주소를 반환
*변수를 가리키는 포인터
? :조건(삼항) 연산자