C语言条件表达式结果类型判断 - (n > 0 ? 2.9 : 1) 值为浮点数
不正确。条件表达式 '(n > 0 ? 2.9 : 1)' 的值为浮点数 2.9,而不是整数 1。这是因为条件表达式的结果类型是由两个分支中较高精度的类型决定的。
在这个条件表达式中,当 'n > 0' 为真时,表达式的结果为 2.9,因为 2.9 是一个浮点数常量。虽然结果被赋值给一个整型变量,但它会被自动转换为整数值 2。
示例:
#include <stdio.h>
int main() {
int n = -10;
int result = (n > 0 ? 2.9 : 1);
printf('%d\n', result); // 输出 2
return 0;
}
在这个示例中,变量 'result' 被赋值为条件表达式的结果。由于 'n' 的值为 -10,不满足条件 'n > 0',所以条件表达式的结果为 1.0,被自动转换为整数值 1。
希望这个解答能够帮助你。如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bK0j 著作权归作者所有。请勿转载和采集!