1.是变量被转换了。举个例子给你看:int a = 32;//32为系统中为4字节 char p = (char)a//即把4字节的a给强制类型转换成了1字节的了,然后赋值给p。 p= (char*)&a//即把变量的a的地址转换成了能被char 指针保存的形式。2.char *p//虽然指针p本身是4字节。但是指向的类型是char类型为1字节(1字节最大数值为255).所以说a<255。