连等赋值不同类型变量
程序代码:
#include <stdio.h> int main( void ) { double a,d; int b,c; a=b=1.5; //double在前 if (sizeof(int)==sizeof(b)) printf("变量b的类型仍然是int,长度是:%d\n",sizeof(b)); printf("原double型变量a现在的长度是:%d,值是:%d\n",sizeof(a),a); printf("原int型变量b现在的长度是:%d,值是:%d\n",sizeof(b),b); c=d=1.5; //int在前 if (sizeof(double)==sizeof(d)) printf("变量d的类型仍然是double,长度是:%d\n",sizeof(d)); printf("原int型变量c现在的长度是:%d,值是:%d\n",sizeof(c),c); printf("原double型变量d现在的长度是:%d,值是:%d\n",sizeof(d),d); return 0; }
我以为这样做,int型的b会得到去掉小数的1,而a没得到值,为什么?
又写个c和d,让double在中间,double的d又没得到值,而隔着的c得到值了……
哪位大佬解释下啊,谢了!
附书上的解释:
习题: