20.2 삼항연산자 사용하기
, 김 이재님이 작성float num1 = 1.2f;
printf("%f\n", num1== 2.0f ? 3.0f : 4.0f);
이 코딩과
int num1 = 10;
num1== 10? 100 : 200;
printf("%d\n",num1);
이 코딩에서
첫 번쨰 코딩은 4.0이 출력 되고, 두 번째 코딩은 10이 출력됩니다.
두 번째 코딩에서 제가 생각하는 문제점은 삼항연산자를 계산한 값인 100을 할당할 변수가 없어서, 변수선언 할 때 설정한 10의 값이 그대로 나온 것이라고 생각합니다. 이렇게 생각한다면 첫 번째 코딩에서도 원래 num1의 값인 1.2가 출력 되어야 할텐데 그렇게 나오지 않은 것은 printf 안에서 삼항연산자 계산을 하고 바로 앞에 서식지정자가 있기 때문인가요? 만약 이런 이유라면 4.0을 바로 서식지정자인 %f에 할당해준다는 뜻인가요?