作业帮 > 综合 > 作业

下面定义的max函数返回值的数据类型是 max(float a, float b) { return (a>b?a:b)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 12:29:54
下面定义的max函数返回值的数据类型是 max(float a, float b) { return (a>b?a:b) }
还有一个问题:(float)10/2的值的数据类型是double.为什么?这是强制类型转换吗?
一、
max(float a,float b) { return (a>b?a:b) } 函数的返回值是a b 中大的那个数,因此,返回值类型应该是float !
如果在书写时,没有在max前指定返回值类型,C默认数据的返回值类型是int,这时编译时应该有警告或错误提示
二、(float)10/2的值的数据类型是double.为什么?这是强制类型转换吗?
(float)10/2 这个表达式中,(float)只是将10强制转换成float类型,符点型数据与任何数据运算,其结果都是符点型,而C中,对于常数(相对于变量而言,非变量就是常数),符点型常数的默认类型就是double!
以上情况LZ都可以通过写个小测试程序来进行验证.
再问: 根据你这句话:“如果在书写时,没有在max前指定返回值类型,C默认数据的返回值类型是int” 这个函数的返回值应该是int型的,,,嗯,我懂了,答案就是int型。 再请问下, 是不是(int),(double) 这种类型外面套上括号的都是强制类型转换?然后将接下来跟着的数字(比如说10)强制转换成那种类型(比如说float)
再答: 你说的对! 记不记得在运算符表中,对括号()的描述是:强制转换符?!!当然作为强制转换符使用时的括号()其中间一定要是数据类型,如int , double , struct .....等