wellcome_공부일기

01.01. C++ | 프로그램의 전체적인 구조 본문

프로그래밍/C++

01.01. C++ | 프로그램의 전체적인 구조

ma_heroine 2020. 4. 19. 03:16

< 목차 >

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을 적용한 코드 블럭입니다. 

Comments