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

잔글 (봇: 자동으로 텍스트 교체 (-\[\[(File|file): +[[파일:))
 
(사용자 14명의 중간 판 45개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{쉽게 알 수 있다 시리즈|이 문서는 정말 쉽습니다.|문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.}}
{{:시리즈:쉽게 배우는 프로그래밍 입문}}
[[분류:컴퓨터_프로그래밍]]
 
이번에는 [[C++]]에 대해서 배우실 차례입니다.
 
[[C++]]에 대한 설명은 리브레의 C++항목을 보시길 바랍니다.
 
본 문서에서는 파이썬과의 차이점을 들면서 C++을 알려드리겠습니다.
 
== 개발환경 설치 ==
본 강좌에서는 [[CodeBlocks]]라는 리눅스, 윈도우, 맥을 다 지원하는 C/C++용 IDE(컴파일러 + 편집기)을 사용할께요
=== 윈도우 ===
[http://sourceforge.net/projects/codeblocks/files/Binaries/13.12/Windows/codeblocks-13.12mingw-setup-TDM-GCC-481.exe 다운로드 링크] 을 눌러서 CodeBlocks를 설치하시면 됩니다.
=== 리눅스 ===
==== 우분투 ====
sudo apt-get install codeblocks를 입력하여 설치합니다.
=== OSX ===
[http://www.codeblocks.org/downloads/26 여기]에서 다운 받으면 됩니다.(개발자가 부족해서 16.01은 아직 안 된다고 하네요)
 
=== 코드블럭 실행 ===
[[파일: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]]
 
# 프로젝트 이름
# 프로젝트 폴더가 저장될 위치'''중요'''
# 실제 프로젝트가 저장될 위치
 
처음 만지는 분이 프로젝트 폴더가 저장될 위치를 지정하지 않고 Next를 눌러 꼬이는 경우가 많다. 꼭 파랑색 원이 그려진 버튼을 눌러서 폴더를 정한 다음에 Next를 누른다.
 
 
[[파일:codeblocks-8.PNG]]
 
완료가 되면 다음과 같이 프로젝트와 소스 파일 하나가 생긴다.
 
== Hello, World! ==
<syntaxhighlight lang=cpp>
#include <iostream>
 
int main(void)
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
</syntaxhighlight>
=== 파이썬과의 차이점 ===
 
우선 너무 달라서 공통점이 없어 보이기는 하지만 몇가지 공통점이 보인다
# 뭔가 친숙한 문자열인 "(쌍따옴표)가 보인다
# 뭔가 int라는 게 보인다.
하지만 차이점이 더 많이 보이는데 파이썬과 차이점을 보자면 다음과 같다.
# 파이썬에서 탭으로 구분했던 함수의 시작과 끝을 {}(중괄호)로 구분한다.
# 각 명령문이 끝나면 ;을 붙여야 한다.
# 함수 선언이 '''def'''로 시작하지 않는다.
이다.
 
우선 파이썬과 달리 C++는 프로그램의 '''시작점'''이라는 것이 필요하다. 파이썬의 경우 시작점이 코드의 첫줄이라면, C++의 프로그램의 시작점은 바로 '''이름이 main인 함수'''이다. 프로그램이 시작되면 main함수이 호출되고 프로그램이 동작한다.
 
또한 코드의 첫줄에 #include <iostream>이라는 문장이 보인다. 당장은 정확히 알 필요없이 '''터미널/콘솔에 출력하려면 필요하다'''라는 것만 알면 된다.
 
프로그램이 시작되면 main함수가 시작되므로 main함수 안을 보자. 한 문장만이 보인다.
<syntaxhighlight lang="cpp">
std::cout<<"Hello, World!"<<std::endl;
</syntaxhighlight>
std는 standard의 약자이며, cout은 console output이라는 약자이고. endl는 end line의 약자이다. 즉, std::cout은 표준으로 정해진 콘솔에 출력이라는 것이며, std::endl은 줄을 끝낸다, 즉 다음 줄로 넘어간다는 뜻이 된다.
 
== 변수==
C++의 변수와 파이썬의 변수는 그 의미와 사용용도는 같지만, 중요한 차이점이 몇가지 있다
# C++의 변수는 파이썬의 변수와 달리 '''선언'''이라는 것이 필요하다.
# C++의 변수는 파이썬의 변수와 달리 한번 정해진 데이터형(변수형)에서 바뀌지 않는다.
파이썬의 변수는 다음과 같이 선언하면 되었다.
<syntaxhighlight lang="python">
변수 = 1
</syntaxhighlight>
하지만 C++에서 변수는 다음과 같이 선언한다.
<syntaxhighlight lang="cpp">
int var = 1
</syntaxhighlight>
해석을 하자면 다음과 같다.
'''int라는 데이터 형인 var이라는 변수를 만들고, 1이라는 값을 넣는다.''' 또는 '''var은 1이고, 숫자다.'''<ref>저 숫자다 부분은 생략해서 생각하고 필요할 때 다시 떠올려 봐도 된다.</ref><ref>쉽게 해석했을 때</ref>
한편 이렇게 변수의 선언시 정해진 데이터형에서 다른 데이터형으로 중간에 바뀔 수 없다.
 
=== 데이터형 ===
C++는 컴퓨터와 매우 가까운 언어이다. 따라서 컴퓨터의 환경에 따라서 여러 가지가 바뀔 수 있는데, 데이터형이 특히 그러하다. 우선은 32비트를 기준으로 설명한 뒤, 64비트 CPU와 차이점이 있는 데이터형만 추가로 서술한다.
==== 정수형 ====
가장 많이 쓰이는 데이터형이다. 정수형이란, 소수점 아랫자리가 없는 데이터형을 말한다. 파이썬에서 정수형은 오직 크기가 하나밖에 없었지만, C++에서는 그 용도에 맞추어 사용하라는 뜻에서 다양한 크기를 가진 정수형이 존재한다.
{|class='wikitable' style='width:100%;'
|-
|style='text-align:center'|데이터형 이름
|style='text-align:center'|bool
|style='text-align:center'|char
|style='text-align:center'|short
|style='text-align:center'|int
|style='text-align:center'|long
|-
|style='text-align:center'|변수 크기
|style='text-align:center'|1비트(1바이트)
|style='text-align:center'|1바이트(8비트)
|style='text-align:center'|2바이트(16비트)
|style='text-align:center'|4바이트(32비트)
|style='text-align:center'|4바이트(32비트)
|-
|style='text-align:center'|표현가능 범위
|style='text-align:center'|false, true
|style='text-align:center'|-128 ~ 127
|style='text-align:center'|-32768~32767
|style='text-align:center'|-2147483648~2147483647
|style='text-align:center'|-2147483648~2147483647
|-
|style='text-align:center'|간단한 뜻
|style='text-align:center'|진위값
|style='text-align:center'|문자
|style='text-align:center'|작은 숫자
|style='text-align:center'|숫자
|style='text-align:center'|큰 숫자
|}
이중 long형의 경우 64비트 기계어로 번역될 경우에는 운영체제마다 그 크기가 다른데, 윈도우의 경우에는 4바이트, 리눅스의 경우에는 8바이트이다.
 
==== 실수형 ====
실수형이란 소수점이 붙은 수를 말한다. 컴퓨터에서 실수를 메모리에 저장할 때는 '''부동 소수점'''표기 방식을 사용한다.
 
'''부동소수점''' 이란 수학으로 보자면 지수방식으로 실수를 표기하는 것과 같다. 1.123123 x 10^2이런 식으로요, 다만 10^n승이 아니라 2^n으로 표기한다는게 차이점이다.
{|class='wikitable' style='width:100%;'
|-
|style='text-align:center'|변수명
|style='text-align:center'|float
|style='text-align:center'|double
|style='text-align:center'|long double
|-
|style='text-align:center'|데이터형 크기
|style='text-align:center'|4바이트
|style='text-align:center'|8바이트
|style='text-align:center'|8바이트 이상
|-
|}
==== 문자형 ====
String 형입니다. <code>string a="김바보"</code>이런 식으로 사용할 수 있습니다. 사실 String은 사용자 정의 타입이기 때문에 더 기능이 있는데, 나중에 알아보도록 합시다.
 
=== 형변환 ===
형변환(casting)은 다른 데이터형으로 변환하는 것을 말한다.
==== 묵시적 형변환 ====
묵시적 형변환이란 변수를 사용하여 셈을 할 때, 프로그래머가 코드로 ''이 값을 이 데이터형으로 바꿔라''라고 작성하지 않았지만 컴파일러가 ''이 값을 이 값이란 셈을 하려면 이런 데이터형으로 변환해야 하겠구나''라는 판단을 내리고 데이터형을 바꾸는 것을 말한다.
묵시적 형변환은 다음과 같은 우선 순위를 갖는다.
# double
# float
# long
# int
왜 다른 데이터형 bool, char, short은 없는가 하면 이들은 다른 데이터형과 셈을 할 때 int형으로 형변환이 된다.
==== 명시적 형변환 ====
<!--
묻지도 따지지도 않고 문법을 배우고 싶은 사람은 [[쉽게 배우는 프로그래밍 입문/C++/문법|문법]]을 읽으면 된다. 만약, 프로그래밍을 C++로 입문하고자 하는 사람이 있다면 [[쉽게 배우는 프로그래밍 입문/C++/따라하기|따라하기]]로.
묻지도 따지지도 않고 문법을 배우고 싶은 사람은 [[쉽게 배우는 프로그래밍 입문/C++/문법|문법]]을 읽으면 된다. 만약, 프로그래밍을 C++로 입문하고자 하는 사람이 있다면 [[쉽게 배우는 프로그래밍 입문/C++/따라하기|따라하기]]로.
== 이 언어를 배우려는 사람에게 전하는 주의사항 ==
== 이 언어를 배우려는 사람에게 전하는 주의사항 ==
46번째 줄: 217번째 줄:
== <s>예외란 없다</s>Hello, World! ==
== <s>예외란 없다</s>Hello, World! ==
빈 프로젝트를 생성한 후 소스(.cpp)파일에 다음 내용을 작성한다.
빈 프로젝트를 생성한 후 소스(.cpp)파일에 다음 내용을 작성한다.
<source lang=cpp>
<syntaxhighlight lang=cpp>
#include <iostream>
#include <iostream>


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




혹은 이렇게도 쓸 수 있다.  
혹은 이렇게도 쓸 수 있다.  


<source lang=cpp>
<syntaxhighlight lang=cpp>
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int main()
int main(void)
{
{
     cout << "Hello, World!" <<endl;
     cout << "Hello, World!" <<endl;
     return 0;
     return 0;
}
}
</source>
</syntaxhighlight>


또는  
또는  


<source lang=cpp>
<syntaxhighlight lang=cpp>
#include <cstdio>
#include <cstdio>
int main()
int main(void)
{
{
     printf("Hello, World!");
     printf("Hello, World!");
     return 0;
     return 0;
}
}
</source>
</syntaxhighlight>




설명: C언어에서는 헤더파일에 stdio.h를 선언했을 텐데, 이와 유사한 일을 하는 헤더파일이 C++의 iostream이다. 그리고 여기에는 c++헤더파일이 아니라 c헤더파일(stdio.h 혹은 stdlib.h 같은)을 선언해도 되며, 선언만 했다면 c언어의 함수도 그대로 쓸 수 있다(참고로 비교적 최근의 표준에서는 C표준 헤더 명 앞에 c를 붙이고 확장자를 지워 cstdio와 같이 나타낸다). 그러나 우리가 배우려는 건 c++이므로 iostream에 들어 있는 함수를 알아보자.
설명: C언어의 stdio와 같이 표준 입출력을 담당하는 C++의 헤더는 iostream이다.
C++는 C언어와는 차이점이 존재하는데 표준 입출력에서 '함수'가 아닌 '(여러 함수를 포함하는)객체'를 사용한다는 점이다.  
C언어를 사용해오던 개발자가 C++를 처음 접할 때 생소함을 느끼는 이유가 그것이다.


cout이라는 함수가 쓰였는데, 이것은 << 뒤에 있는 내용을 출력하는 함수이다. <<뒤에는 문자열, 정수, 실수, 문자 등이 올 수 있다. 또한 endl은 '개행'을 뜻하는 함수이다.
참고로 C++는 C언어와 상위호환이 가능한 언어로 설계되어 기존의 C표준 헤더를 사용하는 것이 가능하다.
비교적 최근의 C++표준은 헤더 명 앞에 c를 붙이고 확장자를 지워서 stdio.h를 cstdio와 같이 쓴다.
예제 코드는 세 번째 소스코드를 참조하면 된다.


C++ 표준 입출력에서는 입출력을 위한 여러 객체나 함수를 제공하는데 대표적으로 cout, cin, endl등이 있다.
위의 소스코드에서 쓰인 cout객체는 콘솔 화면 상에 문자열을 출력하는 기능을 가지고 있다(cout를 console out로 이해하면 편하다). cout 객체의 사용방법은 cout객체와 출력하려는 대상을 << 연산자로 연결하는 것이다.
출력 대상에는 문자열, 정수, 실수, 문자 등이 있고 << 연산자는 비트연산자가 아님을 주의한다.
또한 endl은 개행(endl을 end line으로 이해하면 편하다)의 기능을 하는 객체이다.
이 객체는 cout 객체 뒤에 전달할 수 있으며 이스케이프 시퀀스 \n로 대체가 가능하다(물론 따옴표 안에 묶어야 한다).
따라서
<syntaxhighlight lang=cpp>
std::cout<<"Hello World"<<std::endl;
std::cout<<"Hello World"<<std::endl;
</syntaxhighlight>


은 다음 문장과 완벽하게 똑같다.
은 다음 문장과 완벽하게 똑같다.


<syntaxhighlight lang=cpp>
std::cout<<"Hello World\n";
std::cout<<"Hello World\n";
</syntaxhighlight>


이쯤에서 cout 앞에 쓰인 std라는 것의 용도가 궁금할 것이다. 이것은 이름공간(name space)라는 것인데, 쉽게 말하자면 cout과 endl이라는 함수가 std라는 이름공간안에 들어 있는 것이다. std::cout은 'std 이름공간 안에 들어 있는 cout'이라는 의미이다. 하지만 많은 사람들은 std::cout이라고 치는 것을 귀찮아하는데, 그래서 두번째 코드에는
이쯤에서 cout 앞에 쓰인 std라는 것의 정체가 궁금할 것이다. 이것은 이름공간(name space)라는 것인데, 여러분들이 정의한 객체나 함수가 헤더에 존재하는 것과 이름이 중복된다면 곤란해지므로 이것을 방지하기 위해 만들어진 개념이다.
이름공간안에 묶인 객체나 함수를 사용하기 위해서는 항상 앞에 이름공간의 경로를 명시해야 하며 경로를 연결하는 연산자는 :: 연산자이다.
 
std::를 일일이 붙이는 것도 꽤 번거로운 일이지만 이는 어느 정도 감수할 수 있다.
그러나 cout객체의 경로가 aaa::bbb::ccc::ddd::eee라고 한다면 번거로운 것은 물론이고 가독성까지 떨어지기 때문에 적당한 생략이 필요하다. 그래서 존재하는 것이 바로 using 이다. 이름 공간의 경로를 using 하나만 사용한다면 통째로 생략하는 게 가능해진다.
 
앞의 예제를 보면


using namespace std;
using namespace std;


라고 적혀 있는 것이다. 이것은 'std에 들어 있는 함수는 이름공간을 생략하고 쓰겠다'라는 선언이다.
라고 적혀 있을 것이다. 이것은 '이름공간 std에 들어 있는 모든 객체나 함수는 이름공간을 생략하고 쓰겠다'라는 선언이다.
 
하지만 using을 남용하면 이름 충돌 위험성이 있기 때문에 별로 좋은 코딩 습관은 아니다.
하지만 별로 좋은 코딩 습관은 아니니 위처럼 std::를 꼬박꼬박 붙여주자.
위처럼 std::를 꼬박꼬박 붙여주거나 사용할 객체만 골라서 using std::cout; 와 같이 선언하면 된다.


== 데이터형 ==
== 데이터형 ==
== 배열 ==
== 제어문 ==
== 제어문 ==
== 함수 ==
== 함수 ==
118번째 줄: 310번째 줄:
* [[C++/STL|STL]]
* [[C++/STL|STL]]
* [[C++/CLI]]
* [[C++/CLI]]
 
-->
{{각주}}
{{각주}}
{{쉽게 배우는 프로그래밍 입문}}
[[분류:프로그래밍 시리즈|C++]]
[[분류:C++]]

2022년 8월 28일 (일) 23:30 기준 최신판

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

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.
리브레 프로그래밍 시리즈
초급
프로그래밍
중급
프로그래밍
고급
프로그래밍
Python
협업


이번에는 C++에 대해서 배우실 차례입니다.

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

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

개발환경 설치[편집 | 원본 편집]

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

윈도우[편집 | 원본 편집]

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

리눅스[편집 | 원본 편집]

우분투[편집 | 원본 편집]

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

OSX[편집 | 원본 편집]

여기에서 다운 받으면 됩니다.(개발자가 부족해서 16.01은 아직 안 된다고 하네요)

코드블럭 실행[편집 | 원본 편집]

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이라는 값을 넣는다. 또는 var은 1이고, 숫자다.[1][2] 한편 이렇게 변수의 선언시 정해진 데이터형에서 다른 데이터형으로 중간에 바뀔 수 없다.

데이터형[편집 | 원본 편집]

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바이트 이상

문자형[편집 | 원본 편집]

String 형입니다. string a="김바보"이런 식으로 사용할 수 있습니다. 사실 String은 사용자 정의 타입이기 때문에 더 기능이 있는데, 나중에 알아보도록 합시다.

형변환[편집 | 원본 편집]

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

묵시적 형변환[편집 | 원본 편집]

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

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

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

명시적 형변환[편집 | 원본 편집]

각주

  1. 저 숫자다 부분은 생략해서 생각하고 필요할 때 다시 떠올려 봐도 된다.
  2. 쉽게 해석했을 때