float의 경우, 4바이트지만 복사되는 과정에서 printf( ) 함수가 8바이트 double로 바꿔서 저장
※오류난 부분 분석※
- 13번째 줄
n1은 float, %d는 4바이트이기 때문에 n2에 맞지 않음, 연쇄적으로 오류값이 저장되기 때문에 n3도 오류 발생
- 14번째 줄
%lld는 8바이트이나 n1, n2의 데이터형에 맞지 않는 변수, 앞의 데이터 크기가 맞고 정수를 나타내는 %d를 써서 n3만 올바르게 출력
- 15번째 줄
%f로 n1에 맞는 데이터형, %d는 n2의 데이터형과 데이터크기에 맞지 않음, n3은 n2의 데이터크기 오류로 오류 발생
- 16번째 줄
%f로 n1에 맞는 데이터형, %lld는 데이터 크기는 맞지만 실수에 맞지 않는 데이터형, 앞에서 데이터 크기를 맞췄기 때문에 %d로 표현한 n3는 올바르게 출력
'홍정모의 따라하며 배우는 C언어 정리' 카테고리의 다른 글
대입 연산자와 몇 가지 용어들 (0) | 2023.03.05 |
---|---|
scanf( ) 함수의 사용법 (0) | 2023.03.05 |
변환 지정자의 수식어들 (0) | 2023.02.23 |
printf( ) 함수의 변환 지정자들 (0) | 2023.02.23 |
기호적 상수와 전처리기 (0) | 2023.02.23 |