변수 a가 정수 유형, f가 실수 유형, i가 배정밀도 유형이라고 가정하면 표현식 10 'a' i*f 값의 데이터 유형은 무엇입니까?

연산자 *의 우선순위가 -의 우선순위보다 높고 산술 연산은 연관되어 있으므로 i*f가 먼저 수행됩니다. C 언어에서는 서로 다른 타입의 변수에 대해 산술 연산을 수행할 때 float 타입의 변수를 무조건 double 타입으로 변환해야 합니다. 이런 방식으로 f를 배정밀도(이중정밀도 유형)로 변환하고 역시 배정밀도 유형인 i를 곱하여 배정밀도(이배정밀도 유형) 값을 얻습니다. 그 후 'a'를 10개 센다. 'a'는 문자형이기 때문에 C 언어 규칙에 따르면 문자 데이터는 연산에 참여할 때 무조건 int(정수)로 변환해야 한다는 뜻이다. 이렇게 10'a'는 마지막으로, 10 i*f에 'a' 값이 추가됩니다. 10 'a'는 정수이고 i*f는 배정밀도 유형(double 정밀도 유형)이므로 정수입니다. , 정수형 변수는 자동으로 배정밀도가 됩니다. Type. 두 개의 배정밀도(이중 정밀도) 숫자가 추가되면 형식 char-gt; ; -float 이 변환의 이유는 결과를 최대한 정확하게 만들기 위한 것입니다.