C语言中,定义 int x ; float y ;则int(y+x)结果为整形。这句话为什么是错误的
答案:4 悬赏:80
解决时间 2021-01-20 20:25
- 提问者网友:轮囘Li巡影
- 2021-01-19 22:40
C语言中,定义 int x ; float y ;则int(y+x)结果为整形。这句话为什么是错误的
最佳答案
- 二级知识专家网友:蓝房子
- 2021-01-19 22:58
你说的是(int)(y+x)还是(int)y+x?
int(y+x)是不行的哦。
(int)(y+x结果是int型。
(int)y+x结果是float型。
追问:(int)(y+x)结果是什么型(int)y+x结果是什么型 没看懂(int)(y+x)结果是什么型(int)y+x结果是什么型 没看懂
追答:C语言里面(int)y就是把y变成int型。你可以理解成y→int。
这个运算符优先级比括号低,比加号高。(比如乘也是一样的)先计算优先级高的。
所以说(int)(y+x)就是(y+x)→int。结果是int型。
额,(int)x+y是float型。这个相当于是(x→int)+y
C语言规定是int+float=float。比如1+1.5结果是2.5这是float型。
追问:按你的意思,(int)(y+x)结果就是整型了?但是有个题整形是错的啊
追答:(int)(y+x)是整形
int(y+x)这个是错的
int(y+x)是不行的哦。
(int)(y+x结果是int型。
(int)y+x结果是float型。
追问:(int)(y+x)结果是什么型(int)y+x结果是什么型 没看懂(int)(y+x)结果是什么型(int)y+x结果是什么型 没看懂
追答:C语言里面(int)y就是把y变成int型。你可以理解成y→int。
这个运算符优先级比括号低,比加号高。(比如乘也是一样的)先计算优先级高的。
所以说(int)(y+x)就是(y+x)→int。结果是int型。
额,(int)x+y是float型。这个相当于是(x→int)+y
C语言规定是int+float=float。比如1+1.5结果是2.5这是float型。
追问:按你的意思,(int)(y+x)结果就是整型了?但是有个题整形是错的啊
追答:(int)(y+x)是整形
int(y+x)这个是错的
全部回答
- 1楼网友:琴狂剑也妄
- 2021-01-20 02:12
强制类型转换:(int)(y+x);
追问:什么意思。。类型不同,就不能相加吗。能相加的话怎么加
追答:类型不同,可以相加,但相加会默认成某种类型,所以你要得到什么类型需要直接转化。
追问:什么意思。。类型不同,就不能相加吗。能相加的话怎么加
追答:类型不同,可以相加,但相加会默认成某种类型,所以你要得到什么类型需要直接转化。
- 2楼网友:你哪知我潦倒为你
- 2021-01-20 01:00
看你输出结果定义的变量类型
追问:结果定义就是整形啊 这是强制类型转换。。
追答:能相加啊,现在的状态为int型,如果你定义一个double的变量去接收结果的话,最终结果还是double型的int x, double y,double z,z=(int)(x+y),最终结果还是double型的
int x,z; double y; z=(int)(x+y),这样结果就为int型啊
不同类型的数相加都是低精度转化为高精度然后在相加,这只是一个临时状态,最终的取值还是看定义接收结果变量的类型
追问:就是说int(y+x)的结果是不确定的,是吧
那int(y)+x结果是什么样的
追问:结果定义就是整形啊 这是强制类型转换。。
追答:能相加啊,现在的状态为int型,如果你定义一个double的变量去接收结果的话,最终结果还是double型的int x, double y,double z,z=(int)(x+y),最终结果还是double型的
int x,z; double y; z=(int)(x+y),这样结果就为int型啊
不同类型的数相加都是低精度转化为高精度然后在相加,这只是一个临时状态,最终的取值还是看定义接收结果变量的类型
追问:就是说int(y+x)的结果是不确定的,是吧
那int(y)+x结果是什么样的
- 3楼网友:十鸦
- 2021-01-20 00:28
(int)(y+x)是将y+x的结果强制转换为int
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯