问了几遍米人答

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:01:23
"短"数据赋给"长"变量
若最高位为1(负数),则变量高字节位补1;
反之,补0.

include<stdio.h>
void main()
{
char c;int i;
c=43;i=c;
printf("i=%d\n",i);
c='\376';i=c;
printf("i=%d\n",i)


第一个i 的输出结果怎么是43
教程里说的 43号字符是"+" 所以整形内存排列前面就是00
后面不变

第二个i输出的是-2 实在搞不懂 咋是-2了

大虾给俺解释清楚点

printf("i=%d\n",i);
输出的是整形,要输出字符的话写成这样
printf("i=%c\n",i);

至于'\376',我实在不知道是什么字符。
不妨也改成
printf("i=%c\n",i);看看他是什么字符。

第一个是43啊,你觉得有什么不对吗?

第二个和楼上一样,不知道是什么东东。。。