[C++ 수업] 3주차 C++에서 알아야할 요소

hovi·2022년 9월 18일
0
post-thumbnail

📖 토큰

📌 토큰이란?

코드를 의미가 있는 단어 단위로 자르는데, 이때 짤린 의미있는 단어를 토큰이라고 한다.

ex) I have to go to school by 7 o'clock.
마치 영어의 문장에 끊어저 있는 단어와 같다.

📌 키워드

이미 정해진 예약어이다.

📌 식별자

어떤 대상을 유일하게 구별하기 위한 이름이다.

  • 변수 함수등의 이름으로 사용할 수 있는 문자와 숫자의 조합을 식별자라고 부른다.
  • 알파벳, 숫자, 밑줄(_)의 조합으로 만들어진다. 단, 첫 문자로 숫자가 올 수는 없다.
  • 대소문자를 구분한다. 즉, 'XYZ'와 'xyz'는 서로 다른 식별자이다.
  • 공백, 특수문자(밑줄(_)제외)는 사용할 수 없다.
a
abc
ab_c
F1
12a //숫자로 시작할 수 없다.
return //예약어는 사용할 수 없다.
is-a //특수문자는 사용할 수 없다.
is a b //공백을 포함할 수 없다.

📌 상수

수식에서 변하지 않는 수를 상수라고 한다. 즉, 어떠한 상황에도 변하지 않는 값

int example;
example = 1;
example = 2;

위의 코드에서 변수 example에 상수 1을 저장했다.
example에 1이라는 데이터를 프로그램내에서 사용하게 된 것인데 그 다음줄에서 example의 값을 2로 변경해버렸다.
결과적으로 변수 example이 가지는 값은 2가 되었고, 이처럼 변수는 여러 값들로 변경될 수 있다.

1=2;

하지만 위의 코드를 컴파일한다면 에러가 발생하는데, 이유는 숫자 상수 1에 2를 저장할 수 없기 때문이다.
1이면 1, 2이면2 그 자체로 값을 가지고 있는 것이 바로 상수이다.
이처럼 상수는 프로그램 실행 도중 값이 변경되지 않는 데이터를 뜻한다.

📌 상수의 종류?

상수는 변하지 않는 값으로 큰 종류로는 리터럴 상수와 심볼릭 상수가 있다.

  • 리터럴 상수
    1, 2, 3...9 와 같은 숫자, a, b, c ... z와 같이 문자 그대로 의미가 있는 것들
  • 심볼릭 상수
    상수를 기호화하여 의미있는 이름을 지어서 쓰는 것
    - const 키워드
    - #define 문

📌 리터럴이란?

'A', "C++세상에 오신 것을 환영합니다", 123과 같은 특정 문자나 숫자 표기, 일정한 값을 표현할 때 이용하는 C++의 단어 같은 것들

리터럴의 분류

  • 문자 리터럴 : 하나의 문자 'A', 'e' 등과 같이 문자 하나는 ''로 묶어서 표기
  • 문자열 리터럴 : 문자가 1개 이상일 때 "hello", "Goodbye" 등과 같이 ""로 묶어서 적는다.
  • 숫자 리터럴 : 정수 리터럴 1, 3, 100 등 (정수 리터럴은 10진수 이외에 8진수나 16진수로 표현할 수 있다.) 부동 소수점 리터럴 2.1, 3.14, 5.0 등 숫자 리터럴을 '' or ""로 감싸지 않는다.

📌 연산자

피연산자에게 실행할 연산을 지정하는 기호이다.

📌 문장 부호

세미콜론(;), 소괄호(()), 중괄호({}) 등.

📖 식과 문

📌 식과 문은?

하나의 값으로 도출되는 토큰의 조합

  • 수행해야 할 논리적 코드를 표현하는 방법에는 연산자 이외에도 식과 문을 제공함
  • 수행해야 할 코드에서 값이나 변수, 속성, 리터럴, 연산자, 함수 호출 등의 코드 조각을 식(Expressions)이라 함
  • 그리고 수행해야 할 코드를 세미콜론 단위로 구분하여 표현하는데 이를 문(Statements)이라 함.
  • 결국, 문을 구성하는 것이 식

📌 식

  • [3.14]는 식이다. 일반 상수는 값이므로 식이 된다.
  • [1 + 2]는 식이다. [1 + 2]는 세 개의 토큰(1, +, 2)로 이루어져 있다.
    결국 [1 + 2]는 3이라는 값으로 도출되기 때문에 식이 된다.
  • [x]는 식이다. x라는 변수의 값이 도출된다.
  • [x = 3]은 식이다. 보통 '대입식'이라고 부르는데 좌변에 우변이 대입되면서 우변의 값이 대입식의 도출 값이 된다. 즉, [x = 3]은 3이 도출되므로 식이다.
  • [Add(1, 2)]는 식이다. 보통 반환을 하는 함수 호출은 반환 값이 도출되는 것이므로 식이라고 할 수 있다. 반면 반환을 하지 않는 함수 호출은 식이 되지 않는다.

📌 문

  • [x = 3;]은 할당문이다. x라는 변수에 3을 대입하라는 명령이다.
  • [Add(1, 2);]는 호출문이다. 함수 Add에 인자 1, 2를 전달하여 호출하라는 명령이다.
  • if문, for문, while문, switch문은 제어문이다. 조건을 따져서 분기하거나 반복을 명령한다.
  • [{int a; a = 3;}]은 복합문이다. 복합문은 여러 문을 중괄호 {}로 묶어 블록으로 조합한 복합적인 문장을 말한다.

📖 변수

📌 변수란?

값을 기억해 두는 기능

프로그램을 실행시킬 때 프로그램은 컴퓨터에 여러 값을 기억시키면서 처리한다, 예를 들어 사람은 상점에서 상품의 가격을 기억하고 나중에 그 가격을 종이에 적을 수 있다. 컴퓨터도 숫자를 어딘가 기억해 두고 화면에 출력할 수 있는데 이처럼 값을 기억시켜 두는 기능을 가리켜 변수(variable)라고 부른다.

📖 주석

📌 //설명문

하나의 행에서만 사용하는 설명문(C++ 스타일)

  • //라는 기호를 만나면 그 줄은 무시하라. 따라서 // 기호 뒤에는 C++문법과 관계없이 자유메모가 가능하다.
  • //은 기호가 등장한 줄만 무시하므로 여러 줄에 나누어 설명문을 입력할 수 없다.

📌 /* 설명문 */

여러 행에서 사용할 설명문(C 스타일)

  • /* */로 둘러 싼 부분은 모두 설명문(주석)이다.
  • 따라서 /* */기호를 사용하면 여러 줄에 나누어 설명문을 작성할 수 있다.
profile
풀스택 예비 개발자

0개의 댓글