일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래밍
- 코드블럭 오류
- 학습 알고리즘
- 단항연산자
- const
- 본즈앤올
- standford University
- Greedy
- 연산자
- 이코테
- classification problem
- Andrew Ng
- algorithm
- coursera
- regression problem
- sizeof()
- 기계학습 기초
- #endif
- 나동빈님
- 홍정모님
- decimal
- Machine Learning
- 코딩테스트
- #define
- CLion
- Runtime constants
- 기계학습
- C++
- compile time constants
- 형변환
- Today
- Total
wellcome_공부일기
01.01. C++ | 프로그램의 전체적인 구조 본문
< 목차 >
1. 프로그래밍(Programming)
2. 프로그램(Program)
3. 명령문(statement)과 수식(expression)
4. 리터럴(literal)과 변수(variables) 그리고 전처리기(preprocessor directive)
프로그래밍(Programming)이란?
- 프로그램을 실행시킨다.
- 윈도우즈(Windows), Mac os, Linux 등의 운영체제(operating system)에게 compile이 된 코드를 실행해달라고 요청하는 것
- 이때, 운영체제(operating system)는 자신이 가진 cpu와 메모리를 사용하여 프로그래밍을 수행
프로그램(Program)이란?
- 프로그램이란 함수이다.
- 함수는 입력값(input)에 따른 결과값(output)이 나와야 한다는 것을 의미
int main(void)
{
return 0;
}
- 코드의 main은 함수(function)을 의미
- 즉, 운영체제(operating system)이 프로그램을 시작할때 main이라는 함수를 찾아 실행
- 만약에, main 함수를 찾는데 없다면 운영체제는 수행 불가능
- 그러므로, 프로그램을 실행시키기 위해서는 main이라는 함수(function)가 무조건 필요
- main 함수는 빈 괄호를 가지는데, 아무것도 없어서 void라고 넣기도 하고 또 다른 무언가를 넣기도 한다.
(현재는 학습 초반으로 void로 설정)
- 괄호를 아예 비워두기도 하지만 엄밀히 void라고 쳐두는 것이 좋음
- int는 main이라는 함수의 출력값이 정수라는 것을 의미
- return은 출력값을 돌려준다는 뜻
- main 함수의 값이 int 정수 값이라고 명해줬고 0이라는 함수값(출력값)을 return을 통해 돌려준다.
- 0이라는 정수를 돌려주는 거에 main이라는 함수를 실행시키는 것은 운영체제(operating system)이다.
- 프로그램 실행이 끝나면 0을 돌려주는데 이는 프로그램이 잘 수행되었다는 것을 의미
명령문(statement)과 수식(expression)이란?
int main()
{
(1+1) * (3*4); //expression
return 0; //statement
}
- 위 코드에서 유일한 기능을 수행하는것은 return 0;로 이렇게 기능을 수행하는 문장은 statement라고 함
- 수학에서는 참이냐 거짓이냐를 판단하는 것인데, 컴퓨터 공학에서는 명령문이라고 명하고 있음
- 마침표로 세미콜론을 표시해주는데, 세미콜론을 쓴다는 것은 완전한 문장으로 명령문(statement)가 될 것이고 (1+1) * (3+4)와 같은 수식(계산)은 expression이라고 함.
(위 코드의 3번 라인은 설명을 위한 것으로 실행한다면 문법 오류가 뜰 것임)
리터럴(literal)과 변수(variables) 그리고 전처리기(preprocessor directive)
int main(void)
{
int x = 2;
int y = x + 3;
return 0;
}
- int x =2는 정수형 데이터 2를 담을 수 있는 메모리 공간을 할당 받는 것
- 컴퓨터가 작업할 때는 정보를 기록해두는 메모리라는있고 다음에 실제로 연산을 하는 cpu라는 게 있음
- "이러한 데이터를 메모리에 담아둘 것이다." => x라는 이름으로 그 공간을 사용할 수 있음
- 위 코드에 코드를 추가하면 x는 바뀔 수 있음
int main(void)
{
int x = 2;
x = 5;
int y = x + 3;
return 0;
}
- x는 초기 값과는 다른 값을 가질 수 있고 y는 x의 값에 영향을 받아 값이 달라질 수 있음 => x,y는 변수
- 여기서 '2, 5, 3'을 리터럴(literal)이라고 함
- 컴퓨터 과학 분야에서 리터럴(literal)이란 소스 코드의 고정된 값을 대표하는 용어 ex) 123, 'Hello' etc.
위 코드를 출력하기 위해선 출력하는 기능을 가진 함수를 사용해야 함
#include <iostream> //preprocessor directive
int main(void)
{
int x = 2;
x = 5;
int y = x + 3;
std::cout << y << std::endl;
return 0;
}
- <iostream>은 input output stream이라는 뜻
- 입출력이 가능하게 해주는 기능을 이 cpp파일에 포함을 시킨다는 뜻으로 '#'이 붙는데 이를 전처리기 (preprocessor directive)라고 함
- #include <iostream>을 including을 한 다음에 x와 y를 출력할 수 있음(코드를 추가하면 input 수행도 가능)
- 여기서 std란 cout이라는 함수가 정의된 명칭 공간(name space)
- 명칭 공간(name space)이란 비슷한 기능들을 하는 함수들을 묶어놓거나 혹은 이름이 겹칠 수 있는 것들을 다른 공간에 저장하기 위해서 사용
- 여기서 콜론 두개, " :: "를 붙이면 명칭 공간(name space) 안에 들어있는 cout 접근 가능
- <<은 output operator 연산자라고 함
- std는 스탠다드 라이브러리(standard library)의 일부
* 해당 글은 홍정모님의 따라배우는 C++을 토대로 공부한 내용입니다.
* Dracula style을 적용한 코드 블럭입니다.
'프로그래밍 > C++' 카테고리의 다른 글
01.06. C++ | 식별자의 범위(Scope of an Identifier) (0) | 2020.04.23 |
---|---|
01.05. C++ | 함수 및 변수 이름 짓는 규칙, 키워드와 식별자 차이 (0) | 2020.04.22 |
01.04. C++ | 함수의 구조, 인자와 인수 차이점 (0) | 2020.04.21 |
01.03. C++ | 입출력 살펴보기 (0) | 2020.04.20 |
01.02. C++ | 객체와 변수란? (0) | 2020.04.19 |