#include
int main(void)
{
char aChar;
int aInt;
aInt = aChar = -120;
printf("%d\n",aInt);
return 0;
}
A:一定输出-120
B:一定不能输出-120
C:可能输出-120
D:输出%d
为什么可能输出-120,在赋值过程中,二进制到底是如何赋值的。
应为char类型在有些机型上是有符号的编码格式,C语言中并没有规定,所有有可能是-120
不知道你这个问题是否已经解决, 如果还没有解决的话:少字节类型转换为多字节类型,没有影响,数据也不会发生变化。
#include <stdio.h>
int main()
{
char cret = 0xff;
int num =cret;
int value = 0xff;
printf("cret=%x\n",cret);
printf("cret=%d\n",cret);
printf("num=%x\n",num);
printf("num=%d\n",num);
printf("value=%x\n",value);
printf("value=%d\n",value);
}