삽이 부서질 때까지 삽질

[c++] 자동형 변환, 강제형 변환 본문

c cpp

[c++] 자동형 변환, 강제형 변환

xinfo 2016. 10. 22. 23:08

형변환은 int -> double로 간다거나 double -> int로 간다거나 다양한 경우가 있다.

같은 자료형을 대입하거나 연산하는 것이 아닌 다른 자료형 대입하거나 변환할 때 발생한다.


자료형 글 보러 가시려면 이곳을 클릭하세요.


먼저 자동형 변환에 대해서 알아보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main() {
    int i;
    double d;
 
    i = 3;
    d = i;   
    cout << "d = " << d << endl
 
    d = 5.555;
    i = d;    
    cout << "i = " << i << endl;  
 
    return 0;
}
cs


[강제형 변환]


위 예제는 자동형 변환의 예제이다. 사용자가 다른 자료형에 대입함으로써 컴파일러가 알아서 변환하는 것이다.

이 예제는 int형에서 double 형으로 대입하였다. 이 경우 값이 그대로 출력이 되었지만, double 형에서 int 형으로 변환할 땐 소수점이 잘린 것을 확인할 수 있다. 


형변환할 땐 값이 변할 수 있다는 점을 알아야한다.

물론 int -> double로 갈 때처럼 데이터가 변하지 않을 수 있지만, 데이터가 변했을 경우가 있다는 것을 알아야한다.


다음에는 강제형 변환을 알아보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main() 
{
    double d = 5.6;
    int i = (int)d; 
        
    cout << double(5<< endl;     
    cout << int(5.5<< endl;
 
    cout << int(d) << endl;  
    cout << i << endl;
 
    return 0;
}
cs


강제형 변환은 앞에 변환할 자료형을 적는다.

double 형을 int 형으로 강제형 변환하여 5로 나오게 하였다. 

'c cpp' 카테고리의 다른 글

[c++] if, switch 조건문  (0) 2016.11.22
[c++] 연산자  (0) 2016.10.22
[c++] 변수 선언  (0) 2016.10.19
[c++] 자료형  (0) 2016.10.19
[c++] 화면에 텍스트 출력  (0) 2016.10.19
Comments