일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 사용자 출력
- Operator
- 앱인벤터
- User Input Output
- 연산자
- 파이썬을 중심으로
- Conditional operator
- user function
- using namespace std
- 앱 인벤터 2
- 관계 연산자
- ISSACMin
- Logic Operator
- 앱 인벤터
- C++
- 비트 논리 연산자
- 프로그래밍 열풍
- cmath
- output
- 사용자 입력
- 앱 스토어 4월
- 파이썬
- 모바일 무료 게임 순위
- help 함수
- Python Basic
- 앱 인벤터 예시
- C++ Basic
- Python
- C++ 연습예제
- input
- Today
- Total
ISSAC.Min
[C++ Basic] C++ 기본 개념 본문
1. 식별자(Identifier) |
식별자(Identifier), 필자는 식별자라는 말을 코딩을 시작하기 전에는 운전면허를 딸 때를 제외하고는 한 번도 들어본적이 없다. 그래서 익숙한 단어는 아니고 필자 말고도 식별자라는 말을 생활에서 잘 쓰지않는다. 물론 코딩할때도 자주 등장하는 단어는 아니다. 식별자를 대체할 단어들이 세부적으로 많이 존재하기 때문이다.
식별자(Identifier)의 사전적 정의는 아래와 같다.
변수(Variable), 함수(Function), 클래스(Class)의 이름을 식별자(Identifier) 이라고 한다.
또한 식별자를 만들때는 명확한 규정이 존재하며 아래와 같다.
(1) 알파벳 대소문자, 숫자, 밑줄(underscore)을 조합하며 적어도 하나의 문자가 포함되어야 한다.
※ C++은 대소문자를 구분하는 언어이다.
(2) 숫자로 시작해서는 안된다.
(3) 최대 길이는 32자이다.
(4) 예약어는 식별자로 사용할 수 없다.
(5) 공백은 사용할 수 없다.
1 2 3 4 5 6 7 8 9 | #include <iostream> using namespace std; int main(){ int abc; // 규정에 적합한 식별자 int 123; // 규정에 부적합한 return 0; } | cs |
2. 변수(Variable) |
변수(Variable, 變數)은 변할 변(變), 셈 수(數) 말 그대로 변하는 수를 말하며 데이터 값을 가지고 있으며 개발자의 선택에 따라 값을 정의하고 변경할 수 있다. 또한 여기서 변수명칭은 앞에서 배운 식별자라고 부른다.
위에서 변수는 데이터 값을 가진다고 하였는데 C/C++은 데이터 타입이 매우 중요한 언어 중 하나인데 변수 하나하나마다 메모리를 잡아먹는 정도가 다르기 때문이다.
예를들어, 난 생일(00월 00일)을 가질 수 있는 변수를 선언한다고 할 때 우리가 필요한 수는 월을 나타내는 2글자 일을 나타내는 2글자만 필요하다. 하지만 수 4글자 보다 더 큰 데이터형을 가지는 데이터 값을 선언하면 나머지 수가 사용되기는 하지만 쓸모없는 자리만 차지하기 때문이다. 이는 소프트웨어의 성능을 좌지우지하기에 중요한 문제가 된다.
또한 데이터 형에는 정수, 실수, 문자 등으로 나누어져 메모리를 차지하기에 이런 부분에서도 데이터 형에 대해서 고민하여 코딩하여야 한다. 또한 우리는 데이터형을 자료형으로도 표현한다.
C++에는 여러가지의 기본 자료형이 존재하며 그 중 사용빈도가 많은 자료형은 따로 구분되게 정리하였다.
구 분 |
자 료 형 |
크 기 |
범 위 |
기본형 |
void |
- |
- |
문자형 |
char |
1 byte |
-128 ~ 127 |
unsigned char |
1 byte |
0 ~ 255 |
|
wchar_t |
2 byte |
0 ~ 65,535 |
|
논리 정수형 |
bool |
1 byte |
0 ~ 1 |
정수형 |
short (int) |
2 byte |
-32,768 ~ 32,767 |
unsigned short (int) |
2 byte |
0 ~ 65,535 |
|
int |
4 byte |
-2,147,483,648 ~ 2,147,483,647 |
|
unsigned int | 4 byte |
0 ~ 4,294,967,295 |
|
long (int) |
4 byte |
-2,147,483,648 ~ 2,147,483,647 |
|
unsigned long (int) |
4 byte |
0 ~ 4,294,967,295 |
|
__int8 |
1 byte |
-128 ~ 127 |
|
__int16 |
2 byte |
-32,768 ~ 32,767 |
|
__int32 |
4 byte |
-2,147,483,648 ~ 2,147,483,647 |
|
__int64 |
8 byte |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
|
실수형 |
float |
4 byte |
3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits) |
double |
8 byte |
1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79*10^308) (15digits) |
|
long double |
8 byte |
<C++ 기본 자료형 Table>
위의 표를 보면 bool 논리자료형을 제외한 정수 자료형으로
1byte는 258(2^8)개, 2byte는 65,536(2^16)개,
4byte는 4,294,967,296(2^32)개, 8byte는 18,446,744,073,....(2^64)개
인 것을 알 수 있다.
사실 C++을 처음 입문하는 사람들은 기초를 다지면서 이러한 자료형의 데이터량을 생각하면서 코딩을 진행하지 않고 짝만 맞춰 준다는 것에 초점을 맞추고 진행한다. 하지만 미래에 C++ 개발자가 되어 많은 양의 데이터를 만지게 될때 메모리의 용량에 신경쓰며 코딩을 하게 된다.
3. 상수(Constant) |
앞에서 변수를 설명하였으니 상수(Constant)도 알아보자. 중고등과정의 교육을 배웠다면 상수는 변하지 않으며 일정한 수라는 것을 알고 있을 것이다. 코딩에서도 동일하게 상수는 변하지 않는 수이다. 자연수학과 일반적으로 생가가는 코딩의 상수의 차이가 있다면 자연수학에서는 본질 정해진 수이며 사람이 정한 수가 아닌 자연 그대로 수치화된 수를 뜻하지만 코딩에서는 개발자가 프로젝트 내에서 변경하지 않을 변수를 상수화 시킨 것이라고 알면된다.
예를 들어보면 우리가 흔히 사용하는 PI를 알아보자. 일반적으로 자연, 공학수학에서 PI는 3.14159265359... 정도의 수로 정해져있으며 이는 변하지 않는 고정적인 수이다. 우리는 코딩을 통하여 이를 사용하기 위해 PI를 개발자가 정의해주어야 한다. 그때 우리는 상수라는 표시를 해주는데 아래와 같다.
1 2 3 4 5 6 7 8 9 | #include <iostream> using namespace std; int main(){ float PI1 = 3.14159; // 변수인 PI const float PI2 = 3.14159; // 상수인 PI return 0; } | cs |
위에서 PI1과 PI2는 PI1은 뒤에서 코드를 다르게 할경우 변경이 되지만 PI2는 뒤에서 변경하면 오류가 발생한다.
10번 라인을 지우고 다시 컴파일 할 경우 아래와 같이 PI1이 변한 것을 확인 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream> using namespace std; int main(){ float PI1 = 3.14159; // 변수인 PI const float PI2 = 3.14159; // 상수인 PI cout << PI1 << " " << PI2 << endl; // 3.14159 3.14159 PI1 = 23; // PI1 = 23 PI2 = 23; // error cout << PI1 << " " << PI2 << endl; // 23 3.14159 return 0; } | cs |
4. Output, Input |
기본적으로 코딩을 시작하면 "Hello World" 먼저 화면에 출력하는 것을 참 많이 하는데 일반적으로 이것을 우리는 출력(Output)이라고 한다. C언어를 배웠던 분들은 주로 printf 함수를 사용하는 것에 익숙할 것이며 Python을 배웠던 분이면 print()가 익숙한 함수가 될 것이다. C++에서는 간단하게 cout이라는 문법을 사용하여 출력을 하게되고 아래와 같다.
1 2 3 4 5 6 7 8 | #include <iostream> using namespace std; int main(){ cout << "Hello World" << endl; return 0; } | cs |
또한 출력이 있다면 입력(Input)에 해당하는 문법도 존재하는데 C++에서는 cin이라는 문법을 사용하여 변수값을 받을 수 있으며 아래와 같다.
1 2 3 4 5 6 7 8 9 10 | #include <iostream> using namespace std; int main(){ int number; // number 변수 선언 cin >> number; // number 사용자 입력 cout << number << endl; // number return 0; } | cs |
여기서 cout, cin을 사용하게 하는 전제가 있다면 전에 포스팅 했던 namespace를 사용한다. 위의 3번째 코드를 보면 알 수 있듯이 using namespace std; 를 확인 할 수 있을 것이다.
만약 using namespace std;를 사용하지 않았다면 std::cout 과 std::cin을 통하여 출력과 입력이 가능하다.
1 2 3 4 5 6 7 8 | #include <iostream> int main(){ int number; // number 변수 선언 std::cin >> number; // number 사용자 입력 std::cout << number << std::endl; // number 출력 return 0; } | cs |
<using namespace std; 생략 시 endl 또한 std에 포함되어있는 함수이므로 std::endl; 처리>
또한 한번의 출력에 여러가지 변수를 출력할 수 있으며 입력 또한 여러가지를 입력받을 수 있다.
1 2 3 4 5 6 7 8 9 10 | #include <iostream> using namespace std; int main(){ int num1, num2; // num1, num2 변수 선언 cin >> num1 >> num2; // num1, num2 사용자 입력 cout << num1 << num2 << endl; // num1, num2 출력 return 0; } | cs |
<한 줄에 여러가지 변수의 입력과 출력>
5. 실습 |
'Programming Language > C++ Basic' 카테고리의 다른 글
[C++ Basic] 연산자(Operator) / 부호 연산자(Signed Operator) (0) | 2019.04.03 |
---|---|
[C++ Basic] 연산자(Operator) / 증감 연산자(Increment/Decrement Operator) (0) | 2019.04.03 |
[C++ Basic] 연산자(Operator) / 대입 연산자(Assignment Operator) (0) | 2019.04.03 |
[C++ Basic] 연산자(Operator) / 산술 연산자(Arithmetic Operator) (0) | 2019.04.03 |
[C++ Basic] C++ Basic에 들어가기에 앞서 (0) | 2019.04.02 |