c - 有人可以解释一下这个程序的输出是怎样的吗
问题描述
有人可以解释一下这个程序的输出是如何浮动的吗?我无法理解
#include <stdio.h>
int main()
{
int x = 1;
short int i = 2;
float f = 3;
if (sizeof((x == 2) ? f : i) == sizeof(float))
printf("float\n");
else if (sizeof((x == 2) ? f : i) == sizeof(short int))
printf("short int\n");
}
解决方案
实际上,三元运算符并没有完全按照您的想法返回,但也不是 @user15790236 的想法。三元运算符是一个运算符,因此它期望冒号两侧的参数类型相同。由于您有不同的类型,整数被提升为浮点数,因此表达式的类型为浮点数。
推荐阅读
- python - Numpy.matmul 将数组视为整数
- python - pandas.Series.where 不适用于字典
- react-native - Redux & React Native 组件连接:this.props 未定义
- python - 如何在python中解析来自gRPC响应的数据?
- sql - 如何在 BigQuery 中将 gps 时间转换为日期
- javascript - 无法从 mapsDispatchToProps 访问“道具”
- c++ - 在 hello world 应用程序中包含 setupapi.h 时出现编译器错误
- wt - 当不是主请求时,库未在“doJavaScript”之前加载
- django - Django-Admin 和 Django-Summernote 在我的表单中创建一个文件字段
- flutter - 滚动 Flutter 的多行 TextField 到结束