C语言 若有定义:float x=1.*y=&x.则执行完语句*y=x+3/2后,x的

问题描述:

C语言 若有定义:float x=1.*y=&x.则执行完语句*y=x+3/2后,x的
C语言 若有定义:float x=1.*y=&x.则执行完语句*y=x+3/2后,x的值为,
1个回答 分类:综合 2014-10-13

问题解答:

我来补答
还是1.0
再问: 不对,不是正确答案
再答: 哦。。不好意思看错了。是2.0
再问: 求详细答案
再答: x是一个float类型的变量,即为浮点型变量,对于浮点变量,他的赋值方式有多种,就以你的问题为例,x=1. x=1.0 x=.1e1(1前面有个点) x=1e1(c语言认为这种形式为浮点形式) 这些方式都是被允许的 *y是一个指向x地址的指针, 地址就是内存的编号, 使用指针的时候*y+1就相当于是x+1, 因此 *y=x+3/2就等于x=x+3/2 3/2表示3除2,并且只取整数部分,3除2在数学书应该等于1.5, 但是在C中,新的标准里规定 3/2去零结尾 于是等于1,(在C中对于负数的除法运算也是去零结尾) 另外注意的是,3/2得到的是一个整型数(3/2的结果为1),而x是一个浮点数,因此这里在计算的时候会发生一个类型的转化,整型数就变为了浮点数,因此3/2等于1后,1变为1.0(c中认为1是整型数 1.0为浮点数),再更x相加,最后计算结果在赋值给x(刚才说了*y=x+3/2就等于x=x+3/2 )
再问: 专业的牛逼
 
 
展开全文阅读
剩余:2000
上一页:求补英语