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

问题描述:

下面定义的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,这时编译时应该有警告或错误提...根据你这句话:“如果在书写时,没有在max前指定返回值类型,C默认数据的返回值类型是int”这个函数的返回值应该是int型的,,,嗯,我懂了,答案就是int型。再请问下,是不是(int),(double) 这种类型外面套上括号的都是强制类型转换?然后将接下来跟着的数字(比如说10)强制转换成那种类型(比如说float)你说的对!记不记得在运算符表中,对括号()的描述是:强制转换符?!!当然作为强制转换符使用时的括号()其中间一定要是数据类型,如int , double , struct .....等