C语言基础:运算符和表达式问题??我想破头了!!

公式如下:
void main(){
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
}
int a,b=322;
float x,y=8.88;
char c1='k',c2;
printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b);
本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8 88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B).

如上就是答案,但是我课本上的是:1.实型赋予整型,舍去小数部分。前面的例2.9已经说明了这种情况。
2.整型赋予实型,数值不变,但将以浮点形式存放, 即增加小数部分(小数部分的值为0)。
3.字符型赋予整型,由于字符型为一个字节, 而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。
4.整型赋予字符型,只把低八位赋予字符量。
怎么好像是相反了,我就是想不明白.

甲赋予乙 到底应该怎么回事呢。
是 甲=》乙 还是 乙=》甲。
汉语就是模糊性的语言。2段话都使用了
“赋予”这个词。

不要管字面的意思啦。理解意思吧。
例如:
实数=》整数 小数部分被割掉了。正常吧。

整数=》实数 小数部分被割掉了。不通!整数本来就没有小数。

所以自己去理解作者到底是在说什么吧。
第一段, a为整型,赋予实型量y值
意思是 y=>a
第二段 实型赋予整型 意思是
实型=》整形
他们想要说的规则是一致的。

不能再说了再说我都糊涂啦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-12
没什么问题。你自己迷糊了。
第2个回答  2009-05-13
322转二进制为:101000010
取低八位为:01000010
你对照一下看看
相似回答