A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. #include <stdio.h>

  2. int main()
  3. {   signed int y = -12;
  4.     signed t =-10;
  5.     unsigned int p = -12;
  6.     unsigned q =-10;
  7.    

  8.     printf("%d\n",y );
  9.     printf("%d\n",t );
  10.     printf("%d\n",p );
  11.     printf("%d\n",q );
  12.    
  13.     return 0;
  14. }
复制代码



打印出的结果是:-12
                                -10
                                -12
                                -10

4 个回复

倒序浏览
  1. #include <stdio.h>

  2. int main()
  3. {   signed int y = -12;
  4.     signed t =-10;
  5.     unsigned int p = -12;
  6.     unsigned q =-10;
  7.    

  8.     printf("%d\n",y );
  9.     printf("%d\n",t );
  10.     printf("%u\n",p );
  11.     printf("%u\n",q );
  12.    
  13.     return 0;
  14. }
复制代码


打印出的结果是:-12
-10
4294967284
4294967286

但是没有报错,还是不对啊
回复 使用道具 举报
  1. #include <stdio.h>

  2. int main()
  3. {   signed int y = -12;
  4.     signed t =-10;
  5.     unsigned int p = 12;
  6.     unsigned q =10;
  7.    

  8.     printf("%d\n",y );
  9.     printf("%d\n",t );
  10.     printf("%u\n",p );
  11.     printf("%u\n",q );
  12.    
  13.     return 0;
  14. }
复制代码



打印的结果是:-12
-10
12
10
打印的结果正常,但是前面在unsigend后面加了负号应该报错的啊!
回复 使用道具 举报
编译连接都没问题,为什么报错?只是结果会不是你想要的而已,比如  int a =‘A’; 可能本意是想让a的值是字符A,但是定义成了int类型,这样也不会报错吧,只是结果a的值是65而已。
回复 使用道具 举报
你是按有符号打印的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马