问了几遍米人答
来源:百度知道 编辑: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了
大虾给俺解释清楚点
若最高位为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啊,你觉得有什么不对吗?
第二个和楼上一样,不知道是什么东东。。。