시리즈:쉽게 배우는 프로그래밍 입문/C++: 두 판 사이의 차이

잔글 (Senior9324 사용자가 중급 프로그래밍 시리즈/C++ 문서를 시리즈:중급 프로그래밍 시리즈/C++ 문서로 옮겼습니다)
(차이 없음)

2015년 12월 4일 (금) 00:26 판

문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.

틀:토막글

틀:중급 프로그래밍 항목

쉬운 프로그래밍에서 파이썬을 배우고 오신 여러분 환경합니다. 지금부터 C++에 대해서 배우실 차례입니다.

C++에 대한 설명은 리브레의 C++항목을 보시길 바랍니다.

본 항목에서는 파이썬과의 차이점을 들면서 C++을 알려드리겠습니다.

개발환경 설치

본 강좌에서는 CodeBlocks라는 리눅스, 윈도우, 맥을 다 지원하는 C/C++용 IDE(컴파일러 + 편집기)을 사용할께요

윈도우

다운로드 링크 을 눌러서 CodeBlocks를 설치하시면 됩니다.

리눅스

우분투

sudo apt-get install codeblocks를 입력하여 설치합니다.

OSX

안써서 모르겠어요, 쓰시는 분은 추가바라겠습니다.

코드블럭 실행

Codeblocks-1.PNG

실행을 하면 이렇게 창이 뜹니다. 컴파일러를 선택하라는 창이지만 OK버튼을 눌러 다음으로 넘어 간다.

Codeblocks-2.PNG

다음은 소스파일과 프로젝트 파일 확장자를 코드블럭으로 연결할 것이냐는 질문이다.(C/CPP 코드블럭 프로젝트 파일등)

다른 컴파일러가 없을 경우 그냥 OK를 누르고, 없을 경우 1번째 체크박스을 선택한 후 OK버튼을 누른다.

Codeblocks-3.PNG

프로젝트를 생성할 경우 File -> New -> Project를 누르면 된다.

Codeblocks-4.PNG

Console Application을 누르고 OK를 누른다

Codeblocks-5.PNG

Next를 눌러 다음으로 넘어 간다.

Codeblocks-6.PNG

C++을 누르고 Next를 누른다.

Codeblocks-7.PNG

  1. 프로젝트 이름
  2. 프로젝트 폴더가 저장될 위치중요
  3. 실제 프로젝트가 저장될 위치

처음 만지는 분이 프로젝트 폴더가 저장될 위치를 지정하지 않고 Next를 눌러 꼬이는 경우가 많다. 꼭 파랑색 원이 그려진 버튼을 눌러서 폴더를 정한 다음에 Next를 누른다.


Codeblocks-8.PNG

완료가 되면 다음과 같이 프로젝트와 소스 파일 하나가 생긴다.

Hello, World!

#include <iostream>

int main(void)
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

파이썬과의 차이점

우선 너무 달라서 차이점이 없어 보이기는 하지만 몇가지 공통점이 보인다

  1. 뭔가 친숙한 문자열인 "(쌍따옴표)가 보인다
  2. 뭔가 int라는 게 보인다.

하지만 차이점이 더 많이 보이는데 파이썬과 차이점을 보자면 다음과 같다.

  1. 파이썬에서 탭으로 구분했던 함수의 시작과 끝을 {}(중괄호)로 구분한다.
  2. 각 명령문이 끝나면 ;을 붙여야 한다.
  3. 함수 선언이 def로 시작하지 않는다.

이다.

우선 파이썬과 달리 C++는 프로그램의 시작점이라는 것이 필요하다. 파이썬의 경우 시작점이 코드의 첫줄이라면, C++의 프로그램의 시작점은 바로 이름이 main인 함수이다. 프로그램이 시작되면 main함수이 호출되고 프로그램이 동작한다.

또한 코드의 첫줄에 #include <iostream>이라는 문장이 보인다. 당장은 정확히 알 필요없이 터미널/콘솔에 출력하려면 필요하다라는 것만 알면 된다.

프로그램이 시작되면 main함수가 시작되므로 main함수 안을 보자. 한 문장만이 보인다.

std::cout<<"Hello, World!"<<std::endl;

std는 standard의 약자이며, cout은 console output이라는 약자이고. endl는 end line의 약자이다. 즉, std::cout은 표준으로 정해진 콘솔에 출력이라는 것이며, std::endl은 줄을 끝낸다, 즉 다음 줄로 넘어간다는 뜻이 된다.

변수

C++의 변수와 파이썬의 변수는 그 의미와 사용용도는 같지만, 중요한 차이점이 몇가지 있다

  1. C++의 변수는 파이썬의 변수와 달리 선언이라는 것이 필요하다.
  2. C++의 변수는 파이썬의 변수와 달리 한번 정해진 데이터형(변수형)에서 바뀌지 않는다.

파이썬의 변수는 다음과 같이 선언하면 되었다.

변수 = 1

하지만 C++에서 변수는 다음과 같이 선언한다.

int var = 1

해석을 하자면 다음과 같다. int라는 데이터 형인 var이라는 변수를 만들고, 1이라는 값을 넣는다. 한편 이렇게 변수의 선언시 정해진 데이터형에서 다른 데이터형으로 중간에 바뀔 수 없다.

데이터형

C++는 컴퓨터와 매우 가까운 언어이다. 따라서 컴퓨터의 환경에 따라서 여러가지가 바뀔 수 있는데, 데이터형이 특히 그러하다. 우선은 32비트를 기준으로 설명한 뒤, 64비트 CPU와 차이점이 있는 데이터형만 추가로 서술한다.

정수형

가장 많이 쓰이는 데이터형이다. 정수형이란, 소수점 아랫자리가 없는 데이터형을 말한다. 파이썬에서 정수형은 오직 크기가 하나 밖에 없었지만, C++에서는 그 용도에 맞추어 사용하라는 뜻에서 다양한 크기를 가진 정수형이 존재한다.

데이터형 이름 bool char short int long
변수 크기 1비트(1바이트) 1바이트(8비트) 2바이트(16비트) 4바이트(32비트) 4바이트(32비트)
표현가능 범위 false, true -128 ~ 127 -32768~32767 -2147483648~2147483647 -2147483648~2147483647

이중 long형의 경우 64비트 기계어로 번역될 경우에는 운영체제마다 그 크기가 다른데, 윈도우의 경우에는 4바이트, 리눅스의 경우에는 8바이트이다.

실수형

실수이란 소수점이 붙은 수를 말한다. 컴퓨터에서 실수를 메모리에 저장할 때는 부동 소수점표기 방식을 사용한다.

부동소수점 이란 수학으로 보자면 지수방식으로 실수를 표기하는 것과 같다. 1.123123 x 10^2이런 식으로요, 다만 10^n승이 아니라 2^n으로 표기한다는게 차이점이다.

변수명 float double long double
데이터형 크기 4바이트 8바이트 8바이트 이상

형변환

형변환(casting)은 다른 데이터형으로 변환하는 것을 말한다.

묵시적 형변환

묵시적 형변환이란 변수를 사용하여 셈을 할 때, 프로그래머가 코드로 이 값을 이 데이터형으로 바꿔라라고 작성하지 않았지만 컴파일러가 이 값을 이 값이란 셈을 하려면 이런 데이터형으로 변환해야 하겠구나라는 판단을 내리고 데이터형을 바꾸는 것을 말한다. 묵시적 형변환은 다음과 같은 우선 순위를 갖는다.

  1. double
  2. float
  3. long
  4. int

왜 다른 데이터형 bool, char, short은 없는가 하면 이들은 다른 데이터형과 셈을 할 때 int형으로 형변환이 된다.

명시적 형변환

각주