반응형
캐스트 연산자
- 캐스트 연산자는 명시적인 형 변환이 필요할 때 사용하는 단항 연산자이다.
- 캐스트 연산자는 원하는 데이터형을 소괄호로 묶어 피연산자 앞에 둠으로써 데이터 형을 변환하는 역할을 한다.
- 수식의 형 변환을 위해 사용할 때는 캐스트 연산자를 소괄호로 묶지 않아도 된다.
- 캐스트 연산자의 결합방향은 오른쪽에서 왼쪽이다.
예를 들어 5 / 2처럼 정수끼리의 나눗셈은 몫 2만 출력하는데 (float)로 형 변환을 하고 출력을 하면 2.5가 출력된다.
예시 코드를 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdio.h>
main() {
float n1, n2, result;
n1 = 14.5;
n2 = 53.62;
result = 5 / 2;
printf("5 / 2 = %.2f\n", result);
result = (float) 5 / 2;
printf("(float) 5 / 2 = %.2f\n", result);
result = n1 + n2;
printf("%.2f + %.2f = %.2f\n", n1, n2, result);
result = (int)n1 + (int)n2;
printf("(int) %.2f + (int) %.2f = %.2f\n", n1, n2, result);
result = (int)n1 + n2;
printf("(int) %.2f + %.2f = %.2f\n", n1, n2, result);
result =(int)(n1 + n2);
printf("(int) (%.2f + %.2f) = %.2f\n", n1, n2, result);
}
|
cs |
float 타입의 변수 n1, n2, result 세 개를 선언했다.
n1은 14.5, n2는 53.62로 초기화 했다.
9, 10행 : result는 float형식이지만 5와 2는 정수이며 정수끼리의 나눗셈은 몫만 계산한다. %.2f는 소수점 둘째 자리까지 출력한다는 의미이다. 그래서 결과값이 2.00이 나왔다.
12, 13행 : 위에 나온 5 / 2를 형변환을 하고 싶어 앞에 (float)를 작성했다. 그러면 정수끼리의 나눗셈이라도 소수점이 있는 값이면 flaot로 형변환을 해주었기 때문에 2.50이 출력된다.
15, 16행 : float 형식끼리의 덧셈이므로 소수점자리까지 잘 더해서 잘 출력해준다.
18, 19행 : n1, n2두 수를 int형으로 변환한 후 더해준다. 즉 뒤 소수점 자리를 버려서 14 + 53이 되어 67.00이 출력된다.
21, 22행 : n1만 int로 변환하여 14 + 53.62가 되어 67.62가 출력된다.
24, 25행 : n1, n2 두 수(초기 float 형식)를 그대로 더해 68.12가 되고 다시 int로 변환하여 68이 된다.
반응형
'프로그래밍 > c언어 기초공부' 카테고리의 다른 글
[C언어 기초-14] sizeof 연산자. 자료형 byte 구하기 (0) | 2024.08.04 |
---|---|
[C언어 기초-12] 콤마 연산자(comma operator) (0) | 2024.08.02 |
[C언어 기초-11] 조건 연산자(conditional operator) 삼항 연산자 (0) | 2024.08.01 |
[C언어 기초-10] 복합 대입 연산자 (산술 대입 연산자, 비트 대입 연산자) (0) | 2024.08.01 |
[C언어 기초-09] 비트 연산자 논리 연산자 ~, &, |, ^ (0) | 2024.01.25 |
댓글