C언어 형변환 (캐스팅)
오늘은 간단하게 C언어의 형변환에 대해서 이야기 해 보겠습니다. 이걸 전문용어로 캐스팅이라고 이야기 합니다.
변수의 타입이 서로 다를 경우 연산이 실행되지 않거나 오류가 발생하는데 이럴때 형변환(캐스팅)을 통하여 변수의 타입을 통일시켜주어야 합니다. 예를 들어서 int형과 double형 혹은 float형은 대입이나 연산, 출력등이 정상적으로 수행되지 않습니다. 그래서 만약 double, float등 실수형을 정수형에 대입하고 싶다면 실수형 자료를 정수형으로 형변환(캐스팅) 한 뒤에 대입을 해야 합니다. 참고로 순수 연산은 자료형이 한쪽만 실수형이더라도 정수형이 자동으로 실수형으로 변환연산되기 때문에 연산이 작동하긴 합니다. 일단 간단한 예제를 통해 알아보도록 하겠습니다.
먼저 정수형 변수 a와b, 실수형 변수 x와 y를 각각 선언해주고 정수형 변수a와 b에 각각 10과 3을 나누는 연산을 하고 실수형 변수 x와 y에 대입하는 프로그램입니다. 첫번째는 형변환(캐스팅)을 하지 않고 두번째는 형변환(캐스팅)을 하였습니다. 두번째 함수에서 정수형 변수 a와 b 둘중에 하나만 형변환(캐스팅) 하더라도 자동으로 나머지 하나도 형변환(캐스팅)되어 연산이 되기 때문에 하나만 캐스팅을 하여도 됩니다. 그럼 결과를 한번 볼까요?
정수형 변수를 정수형 그대로 연산하였을 때는 연산 결과도 정수가 나오기 때문에 정확히 정수 3만 실수형 변수 x에 대입이 됩니다. 하지만 정수형 변수를 실수형으로 형변환(캐스팅) 하게 되면 연산 결과도 실수형이 되기 때문에 3.33333이 연산결과값이 되고 그대로 실수형 변수 y에 대입이 되어 출력이 되었습니다. 이렇게 정확한 연산 결과를 위해서는 형변환(캐스팅)을 해야 합니다. 프로그램을 만들다가 연산결과가 이상하다면 찬찬히 보면서 형변환(캐스팅)을 적절히 사용하시기 바랍니다. 감사합니다.
제 블로그를 방문해 주셔서 감사합니다.
도움이 되셨다면 공감(좋아요) 부탁드리고,
댓글은 다른분들께도 좋은 정보일 수 있으니
공개로 부탁드립니다.
여러분의 작은 정성이 좋은 포스팅을 생산하는
힘이 된답니다. :)
감사합니다.