c语言中,整型赋予字符型,只把低八位赋予字符量是怎么回事

如题所述

根据标准,字符型(char)占用一个字节存储(一个字节8位)。
而整型(int)则视不同环境而定。现在常见的是2字节或者4字节。
拿2字节的整型举例,大多数情况下,第一个字节是低八位,第二个字节是高八位,那么问题就来了,将2字节的内容存储至1字节中,必然要舍去部分值。因此只会复制int型变量低八位的值至char型变量中,高八位的值没有地方复制,就舍去了,等同于高八位为0
于是就出现了LZ的问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-18
一个整形占用4个字节, 一个字符是一个字节, 赋值时, 值付给低字节(低8位)

这是很正常的.

一般来说赋值前最好将这个整数值0.