黑马程序员技术交流社区
标题:
usigned代表无符号,为什么最后能输出“—”号?
[打印本页]
作者:
马志华
时间:
2014-12-14 13:50
标题:
usigned代表无符号,为什么最后能输出“—”号?
#include <stdio.h>
int main()
{ signed int y = -12;
signed t =-10;
unsigned int p = -12;
unsigned q =-10;
printf("%d\n",y );
printf("%d\n",t );
printf("%d\n",p );
printf("%d\n",q );
return 0;
}
复制代码
打印出的结果是:-12
-10
-12
-10
作者:
马志华
时间:
2014-12-14 13:57
#include <stdio.h>
int main()
{ signed int y = -12;
signed t =-10;
unsigned int p = -12;
unsigned q =-10;
printf("%d\n",y );
printf("%d\n",t );
printf("%u\n",p );
printf("%u\n",q );
return 0;
}
复制代码
打印出的结果是:-12
-10
4294967284
4294967286
但是没有报错,还是不对啊
作者:
马志华
时间:
2014-12-14 14:00
#include <stdio.h>
int main()
{ signed int y = -12;
signed t =-10;
unsigned int p = 12;
unsigned q =10;
printf("%d\n",y );
printf("%d\n",t );
printf("%u\n",p );
printf("%u\n",q );
return 0;
}
复制代码
打印的结果是:-12
-10
12
10
打印的结果正常,但是前面在unsigend后面加了负号应该报错的啊!
作者:
杨贺阳
时间:
2014-12-14 15:07
编译连接都没问题,为什么报错?只是结果会不是你想要的而已,比如 int a =‘A’; 可能本意是想让a的值是字符A,但是定义成了int类型,这样也不会报错吧,只是结果a的值是65而已。
作者:
se7ven
时间:
2014-12-15 17:31
你是按有符号打印的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2