变量附值问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:04:10
void add_point(Char *image, int wid, int x, int y, XY *point, int *num)
{
image[ y*720 + x]=220;
point[*num].x = x;
point[*num].y = y;

*num = *num+1;
}
在调试的时候image[ y*720 + x]的值却变成 -36,请问是什么原因啊?

image是个字符型数组,字符的ASCII码范围是0~127

字符型变量用一个字节来存储,其中,最高位是符号位,
220的二制形式是11011100,最高位为1,表示这是一个负数,而11011100又是-36的补码,所以会有这个结果