C언어 - 자료형 변환 (Type Conversions)

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