-
[C언어] 자료형 묵시적/명시적 변환 (int float double)개발/C 2020. 12. 23. 17:21
int는 4byte, float는 4byte, double은 8byte이다.
1. 형변환은 일시적이기 떄문에 연산 전후의 x, y자체의 형변환이 일어나지는 않았음을 알 수 있다. (메모리크기 그대로)
하지만 연산결과 자체에서는 형변환이 일어난다. (메모리크기 바뀜)2. double을 int로 바꿀때는, 값이 잘려나간다. 해당 내용은 심각하므로 비주얼스튜디오에서 warning이 나온다.
3. ch=1000이 값이 -24가 나오는 것은, signed char가 char의 기본값인데 앞의 1을 보수 flag로 이해하다보니 값이 음수로 나온 것.
형변환은 위험하다, 큰 것을 작은 데다 욱여넣지 말자!!
'개발 > C' 카테고리의 다른 글
[C언어] 비주얼베이직 / 파일을 빌드에서 제외 (0) 2020.12.23 [C언어] getchar()와 엔터 공백 제거 / fflush(stdin) (0) 2020.12.23 [C언어] float대신 double을 쓰는 이유 / 유효자리수 비교 (0) 2020.12.23 [C언어] 대소문자 변환 / 대문자를 소문자로 / 소문자를 대문자로 (0) 2020.12.23 [C언어] 포인터와 배열 예제 (0) 2020.12.23