1. C++ 언어의 기본 개념( 식별자, 변수, 고정 변수, 입출력, 연산자)

안녕하세요! 여러분 오랜만이에용
오늘은 C++의 기본 개념에 대해 배워보는 시간을 가질건데요.
식별자, 변수, 상수, 입출력, 연산자의 기본개념과 기능에 대해 가볍게 알아보는 시간을 가지도록 합시다!
1. Identifier (식별자)
: 식별자는 말그대로 무언가를 식별할 수 있게 해주는 이름인데요. 변수명도 하나의 예가 될 수 있습니다.
식별자에는 몇가지 규칙이 있어요!
먼저, 문자는 최소 한개 이상 포함해야 하고 첫번째 문자는 대소문자의 알파벳이거나 _ 언더바여야 합니다. 이후에는 알파벳, 언더바, 숫자 모두 가능합니다. 그리고 if, while, continue와 같은 예약어는 식별자로 쓰일 수 없고 공백을 포함해서도 안 됩니다!
2. Variables (변수)
: C++ 내의 모든 변수는 선언되어야 쓸 수 있습니다. 그리고 변수 선언 시에는 변수의 타입을 지정해줘야 합니다.
ex) int x; x = 3; int x = 3;
변수에 값 할당시 사용되는 연산자는 '=' 이고, 변수 선언과 동시에 값을 할당해줄 수 있습니다. 또한 여러개의 변수를 한번에 선언해줄 수도 있습니다. 만약 변수를 선언하고 값을 할당해주지 않았을 때는 쓰레기 값이 들어가게 됩니다. 그렇다면 변수를 선언하고 값을 할당해주는 것은 메모리 측면에서 어떤 의미를 가질까요? 만약 숫자 10을 변수 x에 할당했다면, 컴파일러가 변수 x를 위해 예약해 놓은 메모리 공간에 10이 저장되었다는 것을 의미합니다.
변수의 종류에는 어떤 것이 있을까요? 먼저 integer(정수), float(실수), character(문자) 등이 있습니다.
또한 각 변수의 종류마다 저장 공간이 4byte, 8byte 등으로 다양하기 때문에 저장 공간을 고려하여 변수를 지정해줄 수 있습니다. 실수의 경우 double은 8byte, float는 4byte로 double에 더 많이 들어갈 수 있습니다.
그런데, 만약 int로 선언한 x변수에 double 타입의 y값을 할당하고자 하면 어떻게 될까요? 즉 선언한 변수 타입과 변수에 할당하고자 하는 값의 타입이 다르다면 어떻게 해야 할까요? 이런 경우, 형변환을 사용해야 하는데 형변환의 종류에는 암시적 형변환과 명시적 형변환이 있습니다.
암시적 형변환: short a = 2000;
int b;
b = a;
명시적 형변환: short a =2000;
int b;
b = (int) a; -> c-like cast notation
b = int (a); -> functional notation
3. Constants (상수)
: 아보가드로 수나 빛의 속도와 같이 불변의 값을 설정할 때는 변수가 아닌 상수를 사용합니다. const double PI = 3.14159; 와 같이 말이죠. 고정 변수는 한번 선언 시, 다른 값을 할당할 수 없으며 다른 값을 할당하려고 하면 컴파일 에러가 생기게 됩니다. 선언과 동시에 고정되는 것이죠.
4. Standard Input & Output (기본 입출력)
- 입력:
cin >> vlaue1;
cin >> value1 >> value2; -> 한번에 여러개의 수를 입력할 수 있습니다. 첫번째로 입력한 수가 value1에, 두번째로 입력한 수가 value2에 할당됩니다. 두 가지의 수를 사용자로부터 입력받기 전까지 프로그램은 진행하지 않아요.
- 출력:
cout << "Please enter two integer values:";
5. Operators (연산자)
Arithmetic operators(산술 연산자) 중 prefix or suffix operation에 대해 살펴봅시다.
prefix operation :
x = 3;
y = ++x;
x는 4를 가지고 y 역시 4를 갖는다!
suffix operation :
x = 3;
y = x++;
x는 4를 가지고 y는 3을 갖는다!
두번째의 경우 y에 x를 먼저 할당하고 x에 1을 더해준 것이기에 y는 기존의 x값과 동일합니다.
즉 첫번째의 경우 x에 1을 더해준 후 y에 x를 할당한 것이고 두번째의 경우 y에 x값을 할당한 후 x에 1을 더해준 것이므로 순서에 차이가 있는 것입니다.
Relational operators(관계 연산자) 에는 ==, !=, <, >, <=, >= 등이 있어요.
여기서 conditional ternary operator (조건 삼항 연산자)에 주목해봅시다.
이는 조건이 참이면 첫번째 값을, 거짓이면 두번째 값을 반환하는 식입니다. 다음 예시를 살펴봅시다.
7==5 ? 4 : 3 --> 7과 5는 같지 않으므로 두번째 값인 3이 반환된다.
7==5+2 ? 4 : 3 --> 7과 7은 같으므로 첫번째 숫자인 4가 반환된다.
5>3 ? a : b --> 5가 3보다 크므로 첫번째 문자인 a가 반환된다.
a>b ? a : b --> a와 b 중 더 큰 값이 반환되는 식이다.
6. Comments (주석)
컴파일러로부터 무시되는 부분으로 프로그래머가 코드를 짤 때 보다 효율적이게 짤 수 있도록 도와주는 기능을 합니다.
일종의 설명문인거죠.
// single - line comment (단축키 ctrl + shift + k/ 해제시 ctrl + shift + u)
/*
*
*/ multi - line comment
그럼 오늘도 여기까지 따라오느라 고생 많았어요!
다들 다음 시간에 봐요 꿀
