2020. 11. 9. 21:37ㆍ개인공부/C언어
long double > double > float
unsigned long long, long long
unsigned long, long
unsigned, int
short int, unsigned short int
signed char, char, unsigned char
_Bool
Ref: Google 'Integer conversion rank'
실수가 정수보다 순위가 높다.
d = f + 1.234;
계산하기 위해 f를 double로 바꾸어 계산후 d에 대입
f = f + 1.234;
이 expression의 값이 double 이다.
f+ double이 되기 때문에 값이 double인데 다시 f에 넣으려니 warning이 뜬다.
// casting operators
int i;
float f;
d = (double) 3.14f;
i = 1.6 + 1.7; // double 더하기 double 이기 때문에 3.3인데 int에 들어가면 절삭이 되어 3이 됨.
i = (int) 1.6 + (int) 1.7; // 1 + 1 이되어 2가된다. (truncation절삭 됨)
int i;
float f;
char c;
f = i = c = 'A'; // 65
printf("%c %d %f, c, i, f);
c = c+2; // 'C', 67
i = f + 2 * c; // 65.0f +2 *67 -> 실수에서 정수로 넘어가면서 데이터 소실 우려
출처 : 홍정모의 따라배우는 C언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 반복문 (0) | 2020.11.10 |
---|---|
C언어 - 의사코드 Pseudocode (0) | 2020.11.09 |
C언어 - 연산자 (0) | 2020.11.09 |
C언어 - scanf() 함수의 사용법 (0) | 2020.11.09 |
C언어 - printf()함수의 변환 지정자들 (0) | 2020.11.09 |