中易网

C语言中,定义 int x ; float y ;则int(y+x)结果为整形。这句话为什么是错误的

答案:4  悬赏:80  
解决时间 2021-01-20 20:25
C语言中,定义 int x ; float y ;则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)这个是错的
全部回答
强制类型转换:(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结果是什么样的
(int)(y+x)是将y+x的结果强制转换为int
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蓝桥杯比赛A组和B组报名费一样吗?都是多少钱
商标和版权有什么区别啊?
GtA4 主角mod替换好后,怎么在游戏里切换??
媳妇梦见我杀她父母是什么意思母是什么意思
狗狗处方粮的作用有哪些?
2007年10月16号大盘见顶之后之后有没有立刻逆
成绩占全班10%是什么意思,班里一共90人 ,我
邻国蒙古崩盘 跟中国有什么关系
17岁 1.73 还能长高吗?
跨行政区划法院改革是什么意思
这卷尺怎么看?
渔家乐地址好找么,我有些事要过去
求毒岛冴子本子,动画,最好是百度云,必采纳
嫂子祝贺我妹生个女儿贺词
OMRON CJ系列PLC如何实现多个D区相加,不想一
推荐资讯
新年购车,30万预算是现提昂科威还是坐等途观
天津激情百度酒吧应聘兼职是骗子吗?
沙龙365是做什么的?
汇编中 JNZ 是什么意思 不为1时跳转,还是不
舒痕胶去疤效果怎样,有知道和用的
怀孕中期长白斑怎么办
处 处 处 处py 什么都处 啊啊啊啊啊
开网吧需要哪些手续
木纹系列大理石价格贵不贵?
牙齿酸软怎么办
女人我最大讲副乳的是哪期
一英里等于几千米?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?